[project @ 2002-09-10 10:50:28 by malcolm]
[ghc-base.git] / Prelude.hs
index 002f0a7..02aad8b 100644 (file)
@@ -3,21 +3,58 @@
 -- |
 -- Module      :  Prelude
 -- Copyright   :  (c) The University of Glasgow 2001
--- License     :  BSD-style (see the file libraries/core/LICENSE)
+-- License     :  BSD-style (see the file libraries/base/LICENSE)
 -- 
 -- Maintainer  :  libraries@haskell.org
 -- Stability   :  provisional
 -- Portability :  portable
 --
--- Standard module imported by default into Haskell modules.
+-- The Prelude: a standard module imported by default into all Haskell
+-- modules.  For more documentation, see the Haskell 98 Report
+-- <http://www.haskell.org/onlinereport/>.
 --
 -----------------------------------------------------------------------------
 
 module Prelude (
 
-       -- List things
-    [] (..),
-
+    -- * Basic data types
+    Bool(False, True),
+    Maybe(Nothing, Just),
+    Either(Left, Right),
+    Ordering(LT, EQ, GT),
+    Char, String, Int, Integer, Float, Double, IO,
+    Rational,
+#if defined(__GLASGOW_HASKELL__) || defined(__NHC__)
+       -- Restore export of (:) until we get to 5.05
+    []((:), []),       -- Not legal Haskell 98;
+                       -- ... available through built-in syntax
+    ()(..),            -- Not legal Haskell 98
+    (->),              -- ... available through built-in syntax
+#endif
+    
+    module Data.Tuple,
+        -- Includes tuple types + fst, snd, curry, uncurry
+    
+    -- * Basic type classes
+    Eq((==), (/=)),
+    Ord(compare, (<), (<=), (>=), (>), max, min),
+    Enum(succ, pred, toEnum, fromEnum, enumFrom, enumFromThen,
+         enumFromTo, enumFromThenTo),
+    Bounded(minBound, maxBound),
+
+    -- * Numeric type classes
+    Num((+), (-), (*), negate, abs, signum, fromInteger),
+    Real(toRational),
+    Integral(quot, rem, div, mod, quotRem, divMod, toInteger),
+    Fractional((/), recip, fromRational),
+    Floating(pi, exp, log, sqrt, (**), logBase, sin, cos, tan,
+             asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh),
+    RealFrac(properFraction, truncate, round, ceiling, floor),
+    RealFloat(floatRadix, floatDigits, floatRange, decodeFloat,
+              encodeFloat, exponent, significand, scaleFloat, isNaN,
+              isInfinite, isDenormalized, isIEEE, isNegativeZero, atan2),
+
+    -- * List operations
     map, (++), filter, concat,
     head, last, tail, init, null, length, (!!), 
     foldl, foldl1, scanl, scanl1, foldr, foldr1, scanr, scanr1,
@@ -31,14 +68,14 @@ module Prelude (
     lines, words, unlines, unwords,
     sum, product,
 
-        -- Everything from Text.Read and Text.Show
+    -- * Converting to and from @String@
     ReadS, ShowS,
     Read(readsPrec, readList),
     Show(showsPrec, showList, show),
     reads, shows, read, lex, 
     showChar, showString, readParen, showParen,
     
-        -- Everything corresponding to the Report's PreludeIO
+    -- * Simple I\/O operations
     ioError, userError, catch,
     FilePath, IOError,
     putChar,
@@ -47,36 +84,12 @@ module Prelude (
     getLine, getContents, interact,
     readFile, writeFile, appendFile, readIO, readLn,
 
-    Bool(..),
-    Maybe(..),
-    Either(..),
-    Ordering(..), 
-    Char, String, Int, Integer, Float, Double, IO,
-    Rational,
-    []((:), []),
-    
-    module Data.Tuple,
-        -- Includes tuple types + fst, snd, curry, uncurry
-    ()(..),            -- The unit type
-    (->),              -- functions
-    
-    Eq(..),
-    Ord(..), 
-    Enum(..),
-    Bounded(..), 
-    Num(..),
-    Real(..),
-    Integral(..),
-    Fractional(..),
-    Floating(..),
-    RealFrac(..),
-    RealFloat(..),
-
-       -- Monad stuff, from GHC.Base, and defined here
-    Monad(..),
-    Functor(..), 
+    -- * Monads
+    Monad((>>=), (>>), return, fail),
+    Functor(fmap),
     mapM, mapM_, sequence, sequence_, (=<<),
 
+    -- * Miscellaneous functions
     maybe, either,
     (&&), (||), not, otherwise,
     subtract, even, odd, gcd, lcm, (^), (^^),