On Tue, Jul 22, 2008 at 1:15 AM, Gracjan Polak <[EMAIL PROTECTED]> wrote: > Antoine Latter <aslatter <at> gmail.com> writes: >> >> The function "runIdentity" is found in Control.Monad.Identity in the >> mtl package. >> > But still... Identity is a bit special monad. What other monads need full > laziness in sequence? As far as I know IO is strict. What about lazy/strict > state monad?
A little formal reasoning reveals that sequence1 = sequence2 exactly when (>>=) is strict in its left argument. There are four common monads which are _not_: Identity, Reader, Writer, State (and RWS by extension). Luke _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe