On Sat, Jan 21, 2012 at 1:45 PM, David Barbour <dmbarb...@gmail.com> wrote: > On Sat, Jan 21, 2012 at 10:08 AM, Roman Cheplyaka <r...@ro-che.info> wrote: >> >> * David Barbour <dmbarb...@gmail.com> [2012-01-21 10:01:00-0800] >> > As noted, IO is not strict in the value x, only in the operation that >> > generates x. However, should you desire strictness in a generic way, it >> > would be trivial to model a transformer monad to provide it. >> >> Again, that wouldn't be a monad transformer, strictly speaking, because >> "monads" it produces violate the left identity law. > > > It meets the left identity law in the same sense as the Eval monad from > Control.Strategies. > http://hackage.haskell.org/packages/archive/parallel/3.1.0.1/doc/html/src/Control-Parallel-Strategies.html#Eval
The Eval monad has the property: return undefined >>= const e = e. >From what I can tell, your proposed monads do not. -- Dave Menendez <d...@zednenem.com> <http://www.eyrie.org/~zednenem/> _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe