
Hi Clark, ghci is defaulting to Integer modexp2 forces Int Int overflows with 3^40 On 31/05/12 17:35, Clark Gaebel wrote:
*X> 3^40 `mod` 3 == modexp2 3 40 3 False
*X> fromInteger (3^40 `mod` 3) == modexp2 3 40 3 True
*X> modexp2 3 40 3 0 *X> 3^40 `mod` 3 0
*X> 3^40 `mod` 3 ::Int 2
I'm confused. Last I checked, 0 == 0.
Int overflow is ugly! *X> 3^40 12157665459056928801 *X> maxBound :: Int 9223372036854775807 Claude
Using GHC 7.4.1, and the file x.hs (which has been loaded in ghci) can be found here: http://hpaste.org/69342
I noticed this after prop_sanemodexp was failing.
Any help would be appreciated, - Clark
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe