Bug in Control.Monad.State

Yitzchak Gale gale at sefer.org
Wed Nov 23 07:01:41 EST 2005

On Wed, Nov 23, 2005 at 10:47:02AM -0000, Simon Marlow wrote:
> Apologies for being a bit blunt, but can't this
> problem be solved by introducing a LazyStateT in
> addition to StateT?  This follows the pattern of
> ST (default is strict, we also have
> Control.Monad.ST.Lazy).

That would be great. Except that I would prefer
StrictState, with laziness the default. ST is from
the IO family of monads, so one expects
strictness. MTL monads are usually pure, so the
default should be laziness like everywhere else in

Many of the programs I have written in the past
few years would break if State were to become

But in any case, there is still a bug to
fix. State and StateT are currently straddling
both sides of the fence; State is lazy, and StateT
is strict.


More information about the Libraries mailing list