Possible Duplicate:
Can anyone explain Monads?
I don't really understand the purpose of making a typeclass for Monads, could someone explain this?
I realize what a Monad is, for the most part, in that it's a binary, commutative, associative function with an identity.
Other'n that, why are they useful?