
Alexis Hazell wrote:
On Saturday 14 July 2007 05:21, Andrew Coppin wrote:
Still, while the concept is simple, it's hard to sum up in just a few words what a monad "is". (Especially given that Haskell has so many different ones - and they seem superficially to bear no resemblence to each other.)
Well, how about this as a starting point (from a post i wrote in my blog):
"[In Haskell,] a monad simply seems to be a computational environment in which one can specify that certain types and methods of computation be performed, and in which the three monad laws are expected to hold."
What do people think?
Hmm... it doesn't leave me with either a strong sense of "oh, that sounds simple" or "oh, I understand what that means". I'm only one guy of course...
With regards to the last phrase, i seem to recall that there are monads which nevertheless actually /don't/ follow all three monad laws?
That is my recollection also. (Don't ask me *which* monads, mind you...) In the case in point, the law breakage never the less matches "intuition"; personally, I ignore the monad laws on the basis that if you're doing something "sane", the laws will automatically hold anyway. (But maybe I'm just a renegade?)