Is there a state monad that is strict on the state but lazy on the computation? Of course, strictness in the state will force a portion of the computation to be run, but there may be significant portions of it which are not run. Would there be a way to write a state monad such that it is entirely lazy, but then to wrap either the computation or the state in an 'eager' strategy datatype which takes care of this in a more flexible manner?
Thanks, Matthew 2009/11/11 Bryan O'Sullivan <[email protected]> > On Wed, Nov 11, 2009 at 7:43 AM, David Leimbach <[email protected]> wrote: > >> >> I recently ran into some serious space leak difficulties that would >> ultimately cause this program to crash some time after startup (my simulator >> is also written in Haskell, and runs a LOT faster than the real application >> ever could, this has enabled me to fast forward a bit the data growth issues >> and crash in minutes instead of days!) >> > > It sounds to me like you were storing a Map in a StateT. Since the usual > State and StateT monads don't force the evaluation of their payload, I'm not > terribly surprised that such a leak should arise. > > _______________________________________________ > Haskell-Cafe mailing list > [email protected] > http://www.haskell.org/mailman/listinfo/haskell-cafe > >
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
