<br><br><div class="gmail_quote">On Wed, Nov 11, 2009 at 11:19 AM, Don Stewart <span dir="ltr">&lt;<a href="mailto:dons@galois.com">dons@galois.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
leimy2k:<br>
<div class="im">&gt; I figured I was better off just creating a dependency in the evaluation, near<br>
&gt; the outermost portion of the program (the loop) that would cause a strict<br>
&gt; evaluation, and so far I was right :-)<br>
&gt;<br>
&gt; Program behaves very well now, and responds much better too.<br>
<br>
</div>Do you know if Control.Monad.State.Strict is enough to get the behaviour<br>
you need?<br>
<font color="#888888"><br></font></blockquote><div><br></div><div>I&#39;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. </div>
<div><br></div><div>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.</div>
<div><br></div><div>Dave</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><font color="#888888">
-- Don<br>
</font></blockquote></div><br>