final revision to GArrow classes
[ghc-base.git] / GHC / Base.lhs
index 98abed5..5075478 100644 (file)
@@ -502,26 +502,6 @@ maxInt  = I# 0x7FFFFFFF#
 minInt  = I# (-0x8000000000000000#)
 maxInt  = I# 0x7FFFFFFFFFFFFFFF#
 #endif
-
-instance Eq Int where
-    (==) = eqInt
-    (/=) = neInt
-
-instance Ord Int where
-    compare = compareInt
-    (<)     = ltInt
-    (<=)    = leInt
-    (>=)    = geInt
-    (>)     = gtInt
-
-compareInt :: Int -> Int -> Ordering
-(I# x#) `compareInt` (I# y#) = compareInt# x# y#
-
-compareInt# :: Int# -> Int# -> Ordering
-compareInt# x# y#
-    | x# <#  y# = LT
-    | x# ==# y# = EQ
-    | otherwise = GT
 \end{code}
 
 
@@ -703,12 +683,6 @@ Definitions of the boxed PrimOps; these will be
 used in the case of partial applications, etc.
 
 \begin{code}
-{-# INLINE eqInt #-}
-{-# INLINE neInt #-}
-{-# INLINE gtInt #-}
-{-# INLINE geInt #-}
-{-# INLINE ltInt #-}
-{-# INLINE leInt #-}
 {-# INLINE plusInt #-}
 {-# INLINE minusInt #-}
 {-# INLINE timesInt #-}
@@ -739,14 +713,6 @@ plusInt, minusInt, timesInt, quotInt, remInt, divInt, modInt :: Int -> Int -> In
 negateInt :: Int -> Int
 negateInt (I# x) = I# (negateInt# x)
 
-gtInt, geInt, eqInt, neInt, ltInt, leInt :: Int -> Int -> Bool
-(I# x) `gtInt` (I# y) = x >#  y
-(I# x) `geInt` (I# y) = x >=# y
-(I# x) `eqInt` (I# y) = x ==# y
-(I# x) `neInt` (I# y) = x /=# y
-(I# x) `ltInt` (I# y) = x <#  y
-(I# x) `leInt` (I# y) = x <=# y
-
 {-# RULES
 "x# ># x#"  forall x#. x# >#  x# = False
 "x# >=# x#" forall x#. x# >=# x# = True
@@ -760,9 +726,6 @@ gtInt, geInt, eqInt, neInt, ltInt, leInt :: Int -> Int -> Bool
 "plusFloat x 0.0"   forall x#. plusFloat#  x#   0.0# = x#
 "plusFloat 0.0 x"   forall x#. plusFloat#  0.0# x#   = x#
 "minusFloat x 0.0"  forall x#. minusFloat# x#   0.0# = x#
-"minusFloat x x"    forall x#. minusFloat# x#   x#   = 0.0#
-"timesFloat x 0.0"  forall x#. timesFloat# x#   0.0# = 0.0#
-"timesFloat0.0 x"   forall x#. timesFloat# 0.0# x#   = 0.0#
 "timesFloat x 1.0"  forall x#. timesFloat# x#   1.0# = x#
 "timesFloat 1.0 x"  forall x#. timesFloat# 1.0# x#   = x#
 "divideFloat x 1.0" forall x#. divideFloat# x#  1.0# = x#
@@ -790,6 +753,12 @@ This gives wrong answer (0) for NaN * 0 (should be NaN):
     "timesDouble x 0.0"  forall x#. (*##) x#    0.0## = 0.0##
 
 These are tested by num014.
+
+Similarly for Float (#5178):
+
+"minusFloat x x"    forall x#. minusFloat# x#   x#   = 0.0#
+"timesFloat0.0 x"   forall x#. timesFloat# 0.0# x#   = 0.0#
+"timesFloat x 0.0"  forall x#. timesFloat# x#   0.0# = 0.0#
 -}
 
 -- Wrappers for the shift operations.  The uncheckedShift# family are