[project @ 2001-04-29 11:01:13 by qrczak]
[ghc-hetmet.git] / ghc / lib / std / PrelBase.lhs
index 70d5d8f..86e7dff 100644 (file)
@@ -1,5 +1,5 @@
 % -----------------------------------------------------------------------------
-% $Id: PrelBase.lhs,v 1.47 2001/04/28 04:44:05 qrczak Exp $
+% $Id: PrelBase.lhs,v 1.49 2001/04/29 11:01:13 qrczak Exp $
 %
 % (c) The University of Glasgow, 1992-2000
 %
@@ -191,7 +191,7 @@ class  Monad m  where
     return      :: a -> m a
     fail       :: String -> m a
 
-    m >> k      =  m >>= \_ -> k
+    m >> k      = m >>= \_ -> k
     fail s      = error s
 \end{code}
 
@@ -207,7 +207,7 @@ data [] a = [] | a : [a]  -- do explicitly: deriving (Eq, Ord)
                          -- to avoid weird names like con2tag_[]#
 
 
-instance (Eq a) => Eq [a]  where
+instance (Eq a) => Eq [a] where
     {-# SPECIALISE instance Eq [Char] #-}
     []     == []     = True
     (x:xs) == (y:ys) = x == y && xs == ys
@@ -215,7 +215,6 @@ instance (Eq a) => Eq [a]  where
 
 instance (Ord a) => Ord [a] where
     {-# SPECIALISE instance Ord [Char] #-}
-
     compare []     []     = EQ
     compare []     (_:_)  = LT
     compare (_:_)  []     = GT
@@ -322,7 +321,7 @@ mapList f (x:xs) = f x : mapList f xs
 (++) = append
 
 {-# RULES
-  "++" forall xs ys. (++) xs ys = augment (\c n -> foldr c n xs) ys
+"++"   forall xs ys. (++) xs ys = augment (\c n -> foldr c n xs) ys
  #-}
 
 append :: [a] -> [a] -> [a]
@@ -372,7 +371,7 @@ need ().  (We could arrange suck in () only if -fglasgow-exts, but putting
 it here seems more direct.)
 
 \begin{code}
-data  ()  =  ()
+data () = ()
 
 instance Eq () where
     () == () = True
@@ -417,16 +416,15 @@ data Char = C# Char#
 -- '>' uses compare, and therefore takes two primops instead of one.
 
 instance Eq Char where
-  (C# c1) == (C# c2) = c1 `eqChar#` c2
-  (C# c1) /= (C# c2) = c1 `neChar#` c2
+    (C# c1) == (C# c2) = c1 `eqChar#` c2
+    (C# c1) /= (C# c2) = c1 `neChar#` c2
 
 instance Ord Char where
-  (C# c1) >  (C# c2) = c1 `gtChar#` c2
-  (C# c1) >= (C# c2) = c1 `geChar#` c2
-  (C# c1) <= (C# c2) = c1 `leChar#` c2
-  (C# c1) <  (C# c2) = c1 `ltChar#` c2
+    (C# c1) >  (C# c2) = c1 `gtChar#` c2
+    (C# c1) >= (C# c2) = c1 `geChar#` c2
+    (C# c1) <= (C# c2) = c1 `leChar#` c2
+    (C# c1) <  (C# c2) = c1 `ltChar#` c2
 
-{- XXX
 {-# RULES
 "x# `eqChar#` x#" forall x#. eqChar# x# x# = True
 "x# `neChar#` x#" forall x#. neChar# x# x# = False
@@ -435,7 +433,6 @@ instance Ord Char where
 "x# `leChar#` x#" forall x#. leChar# x# x# = True
 "x# `ltChar#` x#" forall x#. ltChar# x# x# = False
     #-}
--}
 
 chr :: Int -> Char
 chr (I# i#) | int2Word# i# `leWord#` int2Word# 0x10FFFF# = C# (chr# i#)
@@ -482,20 +479,19 @@ instance Eq Int where
 
 instance Ord Int where
     compare = compareInt
-
-    (<)  = ltInt
-    (<=) = leInt
-    (>=) = geInt
-    (>)  = gtInt
+    (<)     = ltInt
+    (<=)    = leInt
+    (>=)    = geInt
+    (>)     = gtInt
 
 compareInt :: Int -> Int -> Ordering
-(I# x) `compareInt` (I# y) = compareInt# x y
+(I# x#) `compareInt` (I# y#) = compareInt# x# y#
 
 compareInt# :: Int# -> Int# -> Ordering
 compareInt# x# y#
- | x# <#  y# = LT
- | x# ==# y# = EQ
- | otherwise = GT
+    | x# <#  y# = LT
+    | x# ==# y# = EQ
+    | otherwise = GT
 \end{code}
 
 
@@ -619,18 +615,16 @@ plusInt, minusInt, timesInt, quotInt, remInt, divInt, modInt, gcdInt :: Int -> I
 (I# x) `divInt`   (I# y) = I# (x `divInt#`  y)
 (I# x) `modInt`   (I# y) = I# (x `modInt#`  y)
 
-{- XXX
 {-# RULES
-"x# +# 0#" forall x#. x# +# 0# = x#
-"0# +# x#" forall x#. 0# +# x# = x#
-"x# -# 0#" forall x#. x# -# 0# = x#
-"x# -# x#" forall x#. x# -# x# = 0#
-"x# *# 0#" forall x#. x# *# 0# = 0#
-"0# *# x#" forall x#. 0# *# x# = 0#
-"x# *# 1#" forall x#. x# *# 1# = x#
-"1# *# x#" forall x#. 1# *# x# = x#
+"x# +# 0#" forall x#. (+#) x# 0# = x#
+"0# +# x#" forall x#. (+#) 0# x# = x#
+"x# -# 0#" forall x#. (-#) x# 0# = x#
+"x# -# x#" forall x#. (-#) x# x# = 0#
+"x# *# 0#" forall x#. (*#) x# 0# = 0#
+"0# *# x#" forall x#. (*#) 0# x# = 0#
+"x# *# 1#" forall x#. (*#) x# 1# = x#
+"1# *# x#" forall x#. (*#) 1# x# = x#
     #-}
--}
 
 gcdInt (I# a) (I# b) = g a b
    where g 0# 0# = error "PrelBase.gcdInt: gcd 0 0 is undefined"
@@ -654,14 +648,13 @@ gtInt, geInt, eqInt, neInt, ltInt, leInt :: Int -> Int -> Bool
 (I# x) `ltInt` (I# y) = x <#  y
 (I# x) `leInt` (I# y) = x <=# y
 
-{- XXX
 {-# RULES
-"x# >#  x#" forall x#. x# >#  x# = False
-"x# >=# x#" forall x#. x# >=# x# = True
-"x# ==# x#" forall x#. x# ==# x# = True
-"x# /=# x#" forall x#. x# /=# x# = False
-"x# <#  x#" forall x#. x# <#  x# = False
-"x# <=# x#" forall x#. x# <=# x# = True
+"x# ># x#"  forall x#. (>#)  x# x# = False
+"x# >=# x#" forall x#. (>=#) x# x# = True
+"x# ==# x#" forall x#. (==#) x# x# = True
+"x# /=# x#" forall x#. (/=#) x# x# = False
+"x# <# x#"  forall x#. (<#)  x# x# = False
+"x# <=# x#" forall x#. (<=#) x# x# = True
     #-}
 
 #if WORD_SIZE_IN_BYTES == 4
@@ -675,7 +668,6 @@ gtInt, geInt, eqInt, neInt, ltInt, leInt :: Int -> Int -> Bool
 "int2Word2Int"  forall x#. int2Word# (word2Int# x#) = x#
 "word2Int2Word" forall x#. word2Int# (int2Word# x#) = x#
     #-}
--}
 \end{code}