Okay, thanks<br>I was pretty sure I was wrong (or else somebody would already have come up with that solution), but I wanted to know why.<br><br><br><div class="gmail_quote">2011/11/18 Daniel Fischer <span dir="ltr">&lt;<a href="mailto:daniel.is.fischer@googlemail.com">daniel.is.fischer@googlemail.com</a>&gt;</span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">On Friday 18 November 2011, 11:18:33, Yves Parès wrote:<br>
&gt; Instead of rewriting modifySTRef, why not just do :<br>
&gt;<br>
&gt; modifySTRef counter (\x -&gt; let y = x+1 in y `seq` y)<br>
&gt;<br>
&gt; Is there a problem with that?<br>
<br>
</div>Yes, y `seq` y is precisely the same as y.<br>
<br>
a `seq` b means whenever evaluation of b is demanded, also evaluate a (to<br>
WHNF).<br>
So y `seq` y ~&gt; whenever evaluation of y is demanded, also evaluate y.<br>
</blockquote></div><br>