X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Prelude.hs;h=2d0fe96c56a18740834bb506d223cbbf59e03bd0;hb=f3eeca6203e637043a6224fa95fe35e41d56039b;hp=b833edb6d8e2cc5fce0ef38ed152a57df36a893b;hpb=789216806265506d3b4637b3b22eb5a46eb5f8f8;p=ghc-base.git diff --git a/Prelude.hs b/Prelude.hs index b833edb..2d0fe96 100644 --- a/Prelude.hs +++ b/Prelude.hs @@ -18,31 +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, - []((:), []), - - module Data.Tuple, - -- Includes tuple types + fst, snd, curry, uncurry - ()(..), -- The unit type - (->), -- functions +#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, @@ -75,8 +85,8 @@ module Prelude ( readFile, writeFile, appendFile, readIO, readLn, -- * Monads - Monad(..), - Functor(..), + Monad((>>=), (>>), return, fail), + Functor(fmap), mapM, mapM_, sequence, sequence_, (=<<), -- * Miscellaneous functions @@ -84,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 @@ -100,6 +111,7 @@ import Data.Either import Data.Maybe import Data.Bool import Data.Tuple +#endif #ifdef __GLASGOW_HASKELL__ import GHC.Base @@ -115,6 +127,11 @@ import GHC.Conc import GHC.Err ( error, undefined ) #endif +#ifdef __HUGS__ +import Hugs.Prelude +#endif + +#ifndef __HUGS__ infixr 0 $! @@ -123,5 +140,5 @@ infixr 0 $! ($!) :: (a -> b) -> a -> b f $! x = x `seq` f x - +#endif