
EOk, i'm trying to write down, not another monad tutorial, because I don't know that much yet, but an explication of my current understanding of monads. But before I write down something that is just flat worng, I thought I'd get a cross check. (and I can't get to #haskell) Monads are Functors. Functors are projections from one category to another such that structure is preserved. One example I have in mind is the embedding of the natural numbers into the real numbers. The mapping is so good, that we don't flinch at saying 1 == 1.0. The functor that takes us from N to R is probably a Monad, that is, if N and R are categories. The real hard part is tying together how unit, join and bind produce a spacesuit that can protect apples from nuclear waste. I'm still getting that clear in my head, although my recent blinding flash of obviousness that M a is a type, and that of course types can do interesting things, I think gets me further along.