Rewrote RULES for gcd and lcm without forall. The old versions *did
not* always fire because of a strange interaction with automatically
generated specialisations for gcd! Example for this misbehaviour:
main :: IO ()
main = do
print (gcd 15675 156750 :: Integer)
print (gcd
12345678987651075 156750 :: Integer)
print (gcd 156750
12345678987651075 :: Integer)
print (gcd
2469135797530215 12345678987651075 :: Integer)
I don't understand why the new version works and the old one did not,
so somebody else should probably have a look at this phenomenon.
*please merge* (like all my commits in the last few days :-}
-"Int.gcd" forall a b . gcd a b = gcdInt a b
-"Integer.gcd" forall a b . gcd a b = gcdInteger a b
-"Integer.lcm" forall a b . lcm a b = lcmInteger a b
+"gcd/Int->Int->Int" gcd = gcdInt
+"gcd/Integer->Integer->Integer" gcd = gcdInteger
+"lcm/Integer->Integer->Integer" lcm = lcmInteger