[Haskell-cafe] Re: what is inverse of mzero and return?
daniel.is.fischer at web.de
Tue Jan 25 04:30:04 EST 2005
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) ()
More information about the Haskell-Cafe