[project @ 2005-04-04 12:16:45 by simonpj]
[ghc-base.git] / Prelude.hs
index 08fe811..840c2ca 100644 (file)
@@ -1,4 +1,4 @@
-{-# OPTIONS -fno-implicit-prelude #-}
+{-# OPTIONS_GHC -fno-implicit-prelude #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Prelude
@@ -6,7 +6,7 @@
 -- License     :  BSD-style (see the file libraries/base/LICENSE)
 -- 
 -- Maintainer  :  libraries@haskell.org
--- Stability   :  provisional
+-- Stability   :  stable
 -- Portability :  portable
 --
 -- The Prelude: a standard module imported by default into all Haskell
@@ -31,7 +31,6 @@ module Prelude (
 
     Ordering(LT, EQ, GT),
     Char, String,
-    IO,
 
     -- *** Tuples
     fst, snd, curry, uncurry,
@@ -112,13 +111,18 @@ module Prelude (
     lines, words, unlines, unwords,
 
     -- * Converting to and from @String@
-    ReadS, ShowS,
-    Read(readsPrec, readList),
+    -- ** Converting to @String@
+    ShowS,
     Show(showsPrec, showList, show),
-    reads, shows, read, lex, 
-    showChar, showString, readParen, showParen,
+    shows,
+    showChar, showString, showParen,
+    -- ** Converting from @String@
+    ReadS,
+    Read(readsPrec, readList),
+    reads, readParen, read, lex, 
     
     -- * Basic Input and output
+    IO,
     -- ** Simple I\/O operations
     -- All I/O functions defined here are character oriented.  The
     -- treatment of the newline character will vary on different systems.
@@ -149,6 +153,8 @@ import Data.Either
 import Data.Maybe
 import Data.Bool
 import Data.Tuple
+import Data.Eq
+import Data.Ord
 #endif
 
 #ifdef __GLASGOW_HASKELL__
@@ -171,11 +177,18 @@ import Hugs.Prelude
 #ifndef __HUGS__
 infixr 0 $!
 
-
 -- -----------------------------------------------------------------------------
 -- Miscellaneous functions
 
+-- | Strict (call-by-value) application, defined in terms of 'seq'.
 ($!)    :: (a -> b) -> a -> b
 f $! x  = x `seq` f x
 #endif
 
+#ifdef __HADDOCK__
+-- | The value of @'seq' a b@ is bottom if @a@ is bottom, and otherwise
+-- equal to @b@.  'seq' is usually introduced to improve performance by
+-- avoiding unneeded laziness.
+seq :: a -> b -> b
+seq _ y = y
+#endif