On Thu, May 31, 2012 at 6:35 PM, Clark Gaebel wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><font face="verdana,sans-serif">*X&gt; 3^40 `mod` 3 == modexp2 3 40 3<br>

False<br>*X&gt; modexp2 3 40 3<br>0<br>*X&gt; 3^40 `mod` 3<br>0<br></font></blockquote><div><br></div><div><div>*X&gt; 3^40 `mod` 3 :: Int</div><div>1</div><div>*X&gt; 3^40 `mod` 3 :: Integer</div><div>0</div></div><div>
<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><font face="verdana,sans-serif">I&#39;m confused. Last I checked, 0 == 0.<br></font></blockquote><div><br></div>
<div>
Yes, but 3^40 /= 3^40 when you have arithmetic overflow:</div><div><br></div><div><div>*X&gt; 3^40 :: Int</div><div>689956897</div><div>*X&gt; 3^40 :: Integer</div><div>12157665459056928801</div></div><div><br></div><div>

Regards,</div><div>Sean</div></div>