<div dir="ltr"><div>Thanks to those who have contributed answers to my questions. I can see how, in a context like</div><div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>let zs = xs <a class="gmail_plusreply" id="plusReplyChip-0">++ ys</a></div></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>in .... </div></blockquote>with a persistent reference to the concatenation, the spine (not the elements) of xs would have to be copied, because zs might need to be traversed multiple times. But what about something like</div><div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>f (xs ++ ys)</div></blockquote><div>for a function f that makes a single pass through its argument list (like length or sum)?</div><div><br></div></div><div>--Todd<br><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><a class="gmail_plusreply"><br></a></div></blockquote></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
</blockquote></div></div>