I think my point was more along the lines that every <i>value</i>, regardless of whether it&#39;s a function or not, can be partial (ignoring primitive types and such). I can hand you a list where the third Int in it will cause you to crash if you force it.<div>
<br>In that sense, whether every numeric literal expands to fromInteger ... or every string literal expands to fromString ... doesn&#39;t really make it any different from any other value. Is the concern that because it&#39;s polymorphic, that different uses of the &quot;same&quot; polymorphic value might or might not crash? That&#39;s the case for any polymorphic value: take e.g., read &quot;()&quot;, which will crash or not depending on where it&#39;s used. If it&#39;s just the case that the value itself could crash when forced, well, that&#39;s true of any value of any lifted type.</div>
<div><br></div><div>So if every value, when forced, can crash your program, possibly depending on what type it&#39;s instantiated to, why are we so concerned about String literals behaving like everything else?</div><div>
<br></div><div>Dan<br><br><div class="gmail_quote">On Tue, Apr 24, 2012 at 1:23 PM, Evan Laforge <span dir="ltr">&lt;<a href="mailto:qdunkan@gmail.com">qdunkan@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">