X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Prelude.hs;h=2d0fe96c56a18740834bb506d223cbbf59e03bd0;hb=e96ffbdd524ee98473e486e52e79bb5912aac664;hp=8d76a0458e09a40c149acffff5e30a2f133bae97;hpb=ea8b5af4e4ff772c2fbc54104e578e80d5f6cca6;p=ghc-base.git diff --git a/Prelude.hs b/Prelude.hs index 8d76a04..2d0fe96 100644 --- a/Prelude.hs +++ b/Prelude.hs @@ -18,32 +18,41 @@ module Prelude ( -- * Basic data types - Bool(..), - Maybe(..), - Either(..), - Ordering(..), + Bool(False, True), + Maybe(Nothing, Just), + Either(Left, Right), + Ordering(LT, EQ, GT), Char, String, Int, Integer, Float, Double, IO, Rational, - -- Restore export of (:) until we get to 5.05 - []((:), []), -- Not legal Haskell 98; available through built-in syntax - - module Data.Tuple, - -- Includes tuple types + fst, snd, curry, uncurry - -- ()(..), -- Not legal Haskell 98 - -- (->), -- ... available through built-in syntax +#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(..), - Enum(..), - Bounded(..), - Num(..), - Real(..), - Integral(..), - Fractional(..), - Floating(..), - RealFrac(..), - RealFloat(..), + 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, @@ -76,8 +85,8 @@ module Prelude ( readFile, writeFile, appendFile, readIO, readLn, -- * Monads - Monad(..), - Functor(..), + Monad((>>=), (>>), return, fail), + Functor(fmap), mapM, mapM_, sequence, sequence_, (=<<), -- * Miscellaneous functions @@ -85,13 +94,14 @@ module Prelude ( (&&), (||), not, otherwise, subtract, even, odd, gcd, lcm, (^), (^^), fromIntegral, realToFrac, - --exported by Data.Tuple: 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 @@ -101,6 +111,7 @@ import Data.Either import Data.Maybe import Data.Bool import Data.Tuple +#endif #ifdef __GLASGOW_HASKELL__ import GHC.Base @@ -116,6 +127,11 @@ import GHC.Conc import GHC.Err ( error, undefined ) #endif +#ifdef __HUGS__ +import Hugs.Prelude +#endif + +#ifndef __HUGS__ infixr 0 $! @@ -124,5 +140,5 @@ infixr 0 $! ($!) :: (a -> b) -> a -> b f $! x = x `seq` f x - +#endif