
18 May
2009
18 May
'09
1:30 p.m.
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