Turn off the gcd/lcm optimisations for Integer for now
authorIan Lynagh <igloo@earth.li>
Fri, 18 Apr 2008 19:02:38 +0000 (19:02 +0000)
committerIan Lynagh <igloo@earth.li>
Fri, 18 Apr 2008 19:02:38 +0000 (19:02 +0000)
This makes it easier to experiment with other implementations

GHC/Real.lhs

index 9b61445..8f39cf8 100644 (file)
@@ -440,13 +440,16 @@ lcm x y         =  abs ((x `quot` (gcd x y)) * y)
 
 {-# RULES
 "gcd/Int->Int->Int"             gcd = gcdInt
-"gcd/Integer->Integer->Integer" gcd = gcdInteger'
-"lcm/Integer->Integer->Integer" lcm = lcmInteger
  #-}
 
-gcdInteger' :: Integer -> Integer -> Integer
-gcdInteger' 0 0 = error "GHC.Real.gcdInteger': gcd 0 0 is undefined"
-gcdInteger' a b = gcdInteger a b
+-- XXX these optimisation rules are disabled for now to make it easier
+--     to experiment with other Integer implementations
+-- "gcd/Integer->Integer->Integer" gcd = gcdInteger'
+-- "lcm/Integer->Integer->Integer" lcm = lcmInteger
+--
+-- gcdInteger' :: Integer -> Integer -> Integer
+-- gcdInteger' 0 0 = error "GHC.Real.gcdInteger': gcd 0 0 is undefined"
+-- gcdInteger' a b = gcdInteger a b
 
 integralEnumFrom :: (Integral a, Bounded a) => a -> [a]
 integralEnumFrom n = map fromInteger [toInteger n .. toInteger (maxBound `asTypeOf` n)]