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

Reply via email to