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,
- -- []((:), []), -- 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,
readFile, writeFile, appendFile, readIO, readLn,
-- * Monads
- Monad(..),
- Functor(..),
+ Monad((>>=), (>>), return, fail),
+ Functor(fmap),
mapM, mapM_, sequence, sequence_, (=<<),
-- * Miscellaneous functions
(&&), (||), 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
import Data.Maybe
import Data.Bool
import Data.Tuple
+#endif
#ifdef __GLASGOW_HASKELL__
import GHC.Base
import GHC.Err ( error, undefined )
#endif
+#ifdef __HUGS__
+import Hugs.Prelude
+#endif
+
+#ifndef __HUGS__
infixr 0 $!
($!) :: (a -> b) -> a -> b
f $! x = x `seq` f x
-
+#endif