On 25 Jan 2005, at 09:30, Daniel Fischer wrote: > putStrLn "hello" >>= (\_ -> mzero) > === > (\_ -> mzero) () ...no. That last identity holds for 'return ()' but not for 'putStrLn "hello"'. The monad law is a law for 'return' not for arbitrary things. Jules