<div style="font-family: Helvetica; font-size: 13px; "><span style="color: rgb(160, 160, 168); ">On Sunday, June 2, 2013 at 5:02 PM, Tommy Thorn wrote:</span></div><blockquote type="cite"><div>
                    <span><div><div><div>On Jun 2, 2013, at 12:52 , Henry Laxen &lt;<a href="mailto:nadine.and.henry@pobox.com">nadine.and.henry@pobox.com</a>&gt; wrote:</div><div><br></div><blockquote type="cite"><div><div>Yes, that was it.  The dell was a 32 bit system, and the desktop a 64.  I </div><div>changed everything from Int to Integer, and now both agree.  Thanks for the </div><div>pointer.</div></div></blockquote><div><br></div><div>Isn't that just terrible? I hate the fact that Haskell was defined to neither trap the overflow</div><div>or just treat everything as Integer [like Scheme]. A sacrifice of program safety in the name</div><div>of efficiency.</div><div><br></div><div>I disagree with this choice and posit that a clever implementation can minimize the cost</div><div>of the overflow checking in most relevant cases.</div><div><br></div><div>I wish this fatal flaw would be reconsidered for the next major revision.</div><div><br></div><div>Tommy</div></div></div></span></div></blockquote><div>In addition to Haskell already having an arbitrary-width integer type called Integer, consider the case where you have some program that basically boils down to&nbsp;</div><div><br></div><div>f :: Int -&gt; Int</div><div>f x = {- some super-complicated mathematical expression -}</div><div><br></div><div>f can only have bounds checks eliminated if the values of the inputs are known in advance. How often are you really going to know that? If you do something like</div><div><br></div><div>main = do</div><div>&nbsp; &nbsp; x &lt;- read &lt;$&gt; getLine</div><div>&nbsp; &nbsp; print $ f x</div><div><br></div><div>then you have to put all the bounds checks in *anyway*.</div>