5 -- Everything from these modules
12 Ord(..), Ordering(..),
15 Show(..), ShowS, shows, show, showChar, showString, showParen,
17 Eval(..), seq, strict,
18 Bool(..), (&&), (||), not, otherwise,
19 Char, String, Int, Integer, Float, Double, Void,
22 ()(..), -- The unit type
25 id, const, (.), flip, ($), until, asTypeOf, undefined,
31 Functor(..), Monad(..), MonadZero(..), MonadPlus(..),
32 accumulate, sequence, mapM, mapM_, guard, filter, concat, applyM,
35 ReadS, Read(readsPrec, readList),
36 reads, read, lex, readParen,
42 (%), numerator, denominator, approxRational,
44 Num((+), (-), (*), negate, abs, signum, fromInteger),
46 Integral(quot, rem, div, mod, quotRem, divMod, toInteger, toInt{-partain-}),
47 Fractional((/), recip, fromRational),
48 Floating(pi, exp, log, sqrt, (**), logBase, sin, cos, tan,
49 asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh),
50 RealFrac(properFraction, truncate, round, ceiling, floor),
51 RealFloat(floatRadix, floatDigits, floatRange, decodeFloat,
52 encodeFloat, exponent, significand, scaleFloat, isNaN,
53 isInfinite, isDenormalized, isIEEE, isNegativeZero),
54 subtract, even, odd, gcd, lcm, (^), (^^),
55 fromIntegral, fromRealFrac, atan2
66 import IOBase ( error )
69 -- These can't conveniently be defined in PrelBase because they use numbers,
70 -- or I/O, so here's a convenient place to do them.
72 strict :: Eval a => (a -> b) -> a -> b
73 strict f x = x `seq` f x
76 seq :: Eval a => a -> b -> b
77 #ifdef __CONCURRENT_HASKELL__
78 seq x y = case (seq# x) of { 0# -> parError; _ -> y }
83 -- It is expected that compilers will recognize this and insert error
84 -- messages which are more appropriate to the context in which undefined
88 undefined = error "Prelude.undefined"