Am Dienstag, 25. Januar 2005 03:25 schrieb Jan-Willem Maessen: > 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 > Thanks, nice to be taken back down to earth. So we have
putStrLn "hello" >> mzero === putStrLn "hello" >>= (\_ -> mzero) === (\_ -> mzero) () === mzero indeed. Daniel _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe