git is the monads 2
When, in the course of learning about Haskell, I reached the point where I thought I understood what Monads were for, I wrote about it. In the comments, Seth Gordon observed that:
There are two kinds of people who try to learn Haskell: the people who give up because they can’t figure out monads, and the people who go on to write tutorials on how to understand monads.
I remembered this today as yet another git tutorial rolled by in my newsreader. Maybe git is the monads of version control.
What other ‘monads’ are there out there? RESTful routing in Rails seems an obvious candidate, but I’m sure there’s more.

hey piers, different context from usual (not a session in newcastle, this), but interesting to see you’ve been learning haskell. i have too, on and off, (initially prompted by trying to understand the monad references in F#). for me, the turning point came when reading phil wadler’s paper “how to declare an imperative”, and writing a little implementation of an IO monad in C, just so i got a gut feeling for what was happening underneath.
i have to say i’ve felt the tutorial temptation too – i think it’s because all of the explanations feel inadequate until you find the one that works.
my one-sentence explanation of (my probably faulty view of) monads: they guarantee sequentiality by construction; anything not in the sequence gets discarded; the sequence starts when the function finishes. or something like that anyway.
you coming to shepley?
Hi rog. I’d not realised you were in this field as well.
Shepley’s not looking all that likely at the moment – I’d like to maybe get down for the Saturday, but I’ll be at the Cumberland for the John Birmingham Memorial singaround on Sunday.
All things can change though.