Oops, I was misreading. You have `e` here as the next monad. In any case, I think the monad identity concept messed up. The property: return x >>= f = f x
Logically only has meaning when `=` applies to values in the domain. `undefined` is not a value in the domain. We can define monads - which meet monad laws - even in strict languages. On Sat, Jan 21, 2012 at 11:02 AM, David Barbour <dmbarb...@gmail.com> wrote: > On Sat, Jan 21, 2012 at 10:51 AM, David Menendez <d...@zednenem.com>wrote: > >> The Eval monad has the property: return undefined >>= const e = e. >> > > You can't write `const e` in the Eval monad. > > > > From what I can tell, your proposed monads do not. >> > > You can't write `const e` as my proposed monad, either. > > Regards, > > Dave > >
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe