[Haskell] [ANN] Safe Lazy IO in Haskell

Nicolas Pouillard nicolas.pouillard at gmail.com
Mon May 18 13:30:08 EDT 2009

Excerpts from Jason Dusek's message of Sun May 17 15:45:25 +0200 2009:
>   From the documentation:
>  "  LI could be a strict monad and a strict applicative functor.
>     However it is not a lazy monad nor a lazy applicative
>     functor as required Haskell. Hopefully it is a lazy
>     (pointed) functor at least.

The type I would need for bind is this one:

  (>>=) :: NFData sa => LI sa -> (sa -> LI b) -> LI b

And because of the NFData constraint this type bind is less general than the
required one.

BTW this operator is exported as (!>>=) by System.IO.Lazy.Input.Extra.

By using the rmonad we could add this NFData constraint, but that's not like
having a Monad instance directly.

Best regards,

Nicolas Pouillard

More information about the Haskell mailing list