[Haskell-cafe] Monads, do and strictness

David Menendez dave at zednenem.com
Sat Jan 21 19:51:35 CET 2012


On Sat, Jan 21, 2012 at 1:45 PM, David Barbour <dmbarbour at gmail.com> wrote:
> On Sat, Jan 21, 2012 at 10:08 AM, Roman Cheplyaka <roma at ro-che.info> wrote:
>>
>> * David Barbour <dmbarbour at 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.


More information about the Haskell-Cafe mailing list