[Haskell-cafe] Explaining monads

Dougal Stanton ithika at gmail.com
Tue Aug 14 03:56:28 EDT 2007

On 14/08/07, Ronald Guida <ronguida at mindspring.com> wrote:

> My present goal is to understand monads well enough to be able to
> explain them to others.  I wonder if it's possible to create a
> tutorial that explains monads well enough so that they just "make
> sense" or "click" for people.

It seems everyone wants to do this, with not much success! :-(

>From reading this thread (piecemeal rather than in one concentrated
session) I get the impression that no-one agrees on what, if anything,
a monad is. If there were a wiki page What_Is_A_Monad and all these
ideas were whittled down whenever a counter-proof (such as Identity or
Reader) were raised --- what would be left?

I get the impression it would look like this:

>  (return x) >>= f == f x
>  m >>= return == m
>  (m >>= f) >>= g == m >>= (\x -> f x >>= g)

And then where would we be? ;-)

I say all this from the point of view of someone who has a reasonably
robust intuitive idea of monads that still fails to encompass the List
monad. I too would like to understand the overall idea to this monad



More information about the Haskell-Cafe mailing list