<div class="gmail_quote">On Tue, Jun 7, 2011 at 1:40 AM, Simon Meier <span dir="ltr">&lt;<a href="mailto:iridcode@gmail.com">iridcode@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Why would you need &#39;unsafePerformIO&#39;. You can scrutinise the &#39;PS&#39;<br>
constructors of the slice without dropping down to IO.</blockquote><div><br></div><div>True. Oops :-)</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Using a Builder for concatentation makes sense, if you want to exploit<br>
that copying a slice of the input array is cheaper right after it has<br>
been inspected (its fully cached) than later (as it is done when<br>
collecting slices in a list).</blockquote><div><br></div><div>When I&#39;ve measured this in the past, I&#39;ve found that it&#39;s often faster to accumulate a list and then run concat at the end than to use blaze-builder directly. That was certainly the case wit GHC 6.12; I haven&#39;t remeasured with 7.0. That&#39;s why you&#39;ll see that some places in the aeson JSON library use blaze-builder, while others manipulate bytestrings directly.</div>
</div>