On Wed, Nov 11, 2009 at 11:19 AM, Don Stewart
<dons@galois.com> wrote:
leimy2k:
> I figured I was better off just creating a dependency in the evaluation, near
> the outermost portion of the program (the loop) that would cause a strict
> evaluation, and so far I was right :-)
>
> Program behaves very well now, and responds much better too.
Do you know if Control.Monad.State.Strict is enough to get the behaviour
you need?
I'll give that a go. Most of my trouble figuring out the space leak has been around identifying what was really responsible for the problem. The functions that were listed as eating the space in -hc runs were not ultimately the ones causing the lack of strictness, in that they would have had to have been evaluated at a higher layer in a non-lazy way.
So my take away from all of this is, when you have a space leak in haskell, start from the outer most evaluations inward, not the other way around!!! I think that would have saved me a ton of time.
Dave
-- Don