X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Prelude.hs;h=2d0fe96c56a18740834bb506d223cbbf59e03bd0;hb=f3eeca6203e637043a6224fa95fe35e41d56039b;hp=8ee9330447b41fdc49461cefe0532c71b6e113dd;hpb=7f1f4e7a695c402ddd3a1dc2cc7114e649a78ebc;p=ghc-base.git diff --git a/Prelude.hs b/Prelude.hs index 8ee9330..2d0fe96 100644 --- a/Prelude.hs +++ b/Prelude.hs @@ -1,25 +1,60 @@ {-# OPTIONS -fno-implicit-prelude #-} ----------------------------------------------------------------------------- --- +-- | -- 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 -- --- $Id: Prelude.hs,v 1.1 2001/06/28 14:15:01 simonmar Exp $ --- --- 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 +-- . -- ----------------------------------------------------------------------------- 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(__NHC__) + []((:), []), -- Not legal Haskell 98; + -- ... available through built-in syntax + module Data.Tuple, -- Includes tuple types + ()(..), -- Not legal Haskell 98 + (->), -- ... available through built-in syntax +#endif +#ifdef __HUGS__ + (:), -- Not legal Haskell 98 +#endif + + -- * 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, @@ -33,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, @@ -49,47 +84,24 @@ module Prelude ( getLine, getContents, interact, readFile, writeFile, appendFile, readIO, readLn, - Bool(..), - Maybe(..), - Either(..), - Ordering(..), - Char, String, Int, Integer, Float, Double, IO, - Rational, - []((:), []), - - module GHC.Tup, - -- 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, (^), (^^), fromIntegral, realToFrac, - --exported by GHC.Tup: fst, snd, curry, uncurry, + fst, snd, curry, uncurry, id, const, (.), flip, ($), until, asTypeOf, error, undefined, seq, ($!) ) where +#ifndef __HUGS__ import Control.Monad import System.IO import Text.Read @@ -98,6 +110,8 @@ import Data.List import Data.Either import Data.Maybe import Data.Bool +import Data.Tuple +#endif #ifdef __GLASGOW_HASKELL__ import GHC.Base @@ -108,12 +122,16 @@ import GHC.Enum import GHC.Num import GHC.Real import GHC.Float -import GHC.Tup import GHC.Show import GHC.Conc import GHC.Err ( error, undefined ) #endif +#ifdef __HUGS__ +import Hugs.Prelude +#endif + +#ifndef __HUGS__ infixr 0 $! @@ -122,5 +140,5 @@ infixr 0 $! ($!) :: (a -> b) -> a -> b f $! x = x `seq` f x - +#endif