On Fri, Nov 9, 2012 at 10:22 PM, Roman Cheplyaka <span dir="ltr">&lt;<a href="mailto:roma@ro-che.info" target="_blank">roma@ro-che.info</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

* Johan Tibell &lt;<a href="mailto:johan.tibell@gmail.com">johan.tibell@gmail.com</a>&gt; [2012-11-09 19:00:04-0800]<br>
<div class="im">&gt; As a community we should primary use strict ByteStrings and Texts. There<br>
&gt; are uses for the lazy variants (i.e. they are sometimes more efficient),<br>
&gt; but in general the strict versions should be preferred.<br>
<br>
</div>I&#39;m fairly surprised by this advice.<br>
<br>
I think that lazy BS/Text are a much safer default.<br>
<br>
If there&#39;s not much text it wouldn&#39;t matter anyway, but for large<br>
amounts using strict BS/Text would disable incremental<br>
producing/consuming (except when you&#39;re using some kind of an iteratee<br>
library).<br>
<br>
Can you explain your reasoning?<br></blockquote><div><br></div><div>It better communicates intent. A e.g. lazy byte string can be used for two separate things:</div><div><br></div><div> * to model a stream of bytes, or</div>

<div> * to avoid costs due to concatenating strings.</div><div><br></div><div>By using a strict byte string you make it clear that you&#39;re not trying to do the former (at some potential cost due to the latter). When you want to do the former it should be clear to the consumer that he/she better consume the string in an incremental manner as to preserve laziness and avoid space leaks (by forcing the whole string).</div>

<div><br></div><div>-- Johan</div><div><br></div></div>