And it would say nothing about things like: return 4 >> return 5 ==?== return 5 I can live with it.
I feel obliged to point out (because the repeated references to the question are driving me up the wall) that this simple equality holds in every monad:
return 4 >> return 5
=== (definition of >>)
return 4 >>= \_ -> return 5
=== (monad laws)
(\_ -> return 5) 4
=== (beta reduction)
return 5
We don't need to know anything about the semantics, etc. of any other actions the monad might happen to define.
-Jan-Willem Maessen
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe