[project @ 1999-05-11 17:05:43 by keithw]
[ghc-hetmet.git] / ghc / lib / std / Numeric.lhs
index 919e832..f38e426 100644 (file)
@@ -1,5 +1,5 @@
 %
-% (c) The AQUA Project, Glasgow University, 1997-98
+% (c) The AQUA Project, Glasgow University, 1997-99
 %
 \section[Numeric]{Numeric interface}
 
@@ -10,72 +10,45 @@ Odds and ends, mostly functions for reading and showing
 \begin{code}
 {-# OPTIONS -fno-implicit-prelude #-}
 module Numeric
-        (
-        fromRat,
-        showSigned, 
-        readSigned, 
-        showInt, 
-        readInt,
 
-        readDec, readOct, readHex,
-
-        showEFloat, 
-        showFFloat, 
-        showGFloat, 
-        showFloat,
-        readFloat, 
+        ( fromRat          -- :: (RealFloat a) => Rational -> a
+       , showSigned       -- :: (Real a) => (a -> ShowS) -> Int -> a -> ShowS
+       , readSigned       -- :: (Real a) => ReadS a -> ReadS a
+       , showInt          -- :: Integral a => a -> ShowS
+       , readInt          -- :: (Integral a) => a -> (Char -> Bool) -> (Char -> Int) -> ReadS a
+       
+       , readDec          -- :: (Integral a) => ReadS a
+       , readOct          -- :: (Integral a) => ReadS a
+       , readHex          -- :: (Integral a) => ReadS a
+
+       , showEFloat       -- :: (RealFloat a) => Maybe Int -> a -> ShowS
+       , showFFloat       -- :: (RealFloat a) => Maybe Int -> a -> ShowS
+       , showGFloat       -- :: (RealFloat a) => Maybe Int -> a -> ShowS
+       , showFloat        -- :: (RealFloat a) => a -> ShowS
+       , readFloat        -- :: (RealFloat a) => ReadS a
+       
         
-        floatToDigits,
-        lexDigits
+       , floatToDigits    -- :: (RealFloat a) => Integer -> a -> ([Int], Int)
+       , lexDigits        -- :: ReadS String
 
+          -- Implementation checked wrt. Haskell 98 lib report, 1/99.
        ) where
 
 import PrelBase
 import PrelMaybe
 import PrelArr
 import PrelNum
+import PrelNumExtra
 import PrelRead
 import PrelErr ( error )
 
 \end{code}
 
-%*********************************************************
-%*                                                      *
-\subsection[Numeric-signatures]{Signatures}
-%*                                                      *
-%*********************************************************
-
-Interface on offer:
-
-\begin{pseudocode}
-fromRat    :: (RealFloat a) => Rational -> a
-
-showSigned :: (Real a) => (a -> ShowS) -> Int -> a -> ShowS
-readSigned :: (Real a) => ReadS a -> ReadS a
-
-showInt    :: Integral a => a -> ShowS
-readInt    :: (Integral a) => a -> (Char -> Bool) -> (Char -> Int) -> ReadS a
-
-readDec    :: (Integral a) => ReadS a
-readOct    :: (Integral a) => ReadS a
-readHex    :: (Integral a) => ReadS a
-
-showEFloat    :: (RealFloat a) => Maybe Int -> a -> ShowS
-showFFloat    :: (RealFloat a) => Maybe Int -> a -> ShowS
-showGFloat    :: (RealFloat a) => Maybe Int -> a -> ShowS
-showFloat     :: (RealFloat a) => a -> ShowS
-readFloat      :: (RealFloat a) => ReadS a
-
-floatToDigits  :: (RealFloat a) => Integer -> a -> ([Int], Int)
-lexDigits      :: ReadS String
-\end{pseudocode}
-
 \begin{code}
 showInt :: Integral a => a -> ShowS
-showInt n r
-  | n < 0     = error "Numeric.showInt: can't show negative numbers"
-  | otherwise = go n r
+showInt i rs
+  | i < 0     = error "Numeric.showInt: can't show negative numbers"
+  | otherwise = go i rs
     where
      go n r = 
       case quotRem n 10 of                 { (n', d) ->