<p dir="ltr">Currently, `adjust` is probably *too* lazy. When called, it places a thunk right at/below the root of the tree. This can lead to thunks building up around the root if multiple nodes are adjusted between inspections. I'm strongly considering modifying it to install its thunk at the appropriate leaf instead. Thinking about this, I realized that even with that modification, calling `update` multiple times on the same index could potentially lead to thunks building up around the leaf, even though this is never necessary.</p>
<div class="gmail_quote">On May 31, 2016 3:20 AM, "Tom Ellis" <<a href="mailto:tom-lists-haskell-cafe-2013@jaguarpaw.co.uk">tom-lists-haskell-cafe-2013@jaguarpaw.co.uk</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Mon, May 30, 2016 at 08:13:41PM -0400, David Feuer wrote:<br>
> If I create a thunk representing<br>
><br>
> const x y<br>
><br>
> will the garbage collector be sure to replace this with x?<br>
<br>
Not until it's evaluated, no.<br>
<br>
> I'm just wondering if I have to be concerned about the fact that<br>
> Data.Sequence defines update in terms of adjust, with<br>
><br>
> update x = adjust (const x)<br>
<br>
Could you say more about your concern?<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
</blockquote></div>