I think my point was more along the lines that every <i>value</i>, regardless of whether it'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't really make it any different from any other value. Is the concern that because it's polymorphic, that different uses of the "same" polymorphic value might or might not crash? That's the case for any polymorphic value: take e.g., read "()", which will crash or not depending on where it's used. If it's just the case that the value itself could crash when forced, well, that'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'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"><<a href="mailto:qdunkan@gmail.com">qdunkan@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">