Eliminate some warnings
authorIan Lynagh <igloo@earth.li>
Sat, 29 Jul 2006 22:08:54 +0000 (22:08 +0000)
committerIan Lynagh <igloo@earth.li>
Sat, 29 Jul 2006 22:08:54 +0000 (22:08 +0000)
Eliminate warnings in the libraries caused by mixing pattern matching
with numeric literal matching.

Data/Complex.hs
GHC/Num.lhs

index 0f8d13b..3b37f6c 100644 (file)
@@ -136,7 +136,7 @@ instance  (RealFloat a) => Num (Complex a)  where
     (x:+y) * (x':+y')  =  (x*x'-y*y') :+ (x*y'+y*x')
     negate (x:+y)      =  negate x :+ negate y
     abs z              =  magnitude z :+ 0
-    signum 0           =  0
+    signum (0:+0)      =  0
     signum z@(x:+y)    =  x/r :+ y/r  where r = magnitude z
     fromInteger n      =  fromInteger n :+ 0
 #ifdef __HUGS__
@@ -165,7 +165,7 @@ instance  (RealFloat a) => Floating (Complex a)     where
                       where expx = exp x
     log z          =  log (magnitude z) :+ phase z
 
-    sqrt 0         =  0
+    sqrt (0:+0)    =  0
     sqrt z@(x:+y)  =  u :+ (if y < 0 then -v else v)
                       where (u,v) = if x < 0 then (v',u') else (u',v')
                             v'    = abs y / (u'*2)
index 540204d..67c7b18 100644 (file)
@@ -184,8 +184,8 @@ divModInteger (J# s1 d1) (J# s2 d2)
            -> (J# s3 d3, J# s4 d4)
 
 remInteger :: Integer -> Integer -> Integer
-remInteger ia 0
-  = error "Prelude.Integral.rem{Integer}: divide by 0"
+remInteger ia ib
| ib == 0 = error "Prelude.Integral.rem{Integer}: divide by 0"
 remInteger a@(S# (-LEFTMOST_BIT#)) b = remInteger (toBig a) b
 remInteger (S# a) (S# b) = S# (remInt# a b)
 {- Special case doesn't work, because a 1-element J# has the range
@@ -205,8 +205,8 @@ remInteger (J# sa a) (J# sb b)
   = case remInteger# sa a sb b of (# sr, r #) -> J# sr r
 
 quotInteger :: Integer -> Integer -> Integer
-quotInteger ia 0
-  = error "Prelude.Integral.quot{Integer}: divide by 0"
+quotInteger ia ib
| ib == 0 = error "Prelude.Integral.quot{Integer}: divide by 0"
 quotInteger a@(S# (-LEFTMOST_BIT#)) b = quotInteger (toBig a) b
 quotInteger (S# a) (S# b) = S# (quotInt# a b)
 {- Special case disabled, see remInteger above