{-# LANGUAGE Trustworthy #-}
{-# LANGUAGE CPP, NoImplicitPrelude, BangPatterns #-}
module Prelude (
Bool(False, True),
(&&), (||), not, otherwise,
Maybe(Nothing, Just),
maybe,
Either(Left, Right),
either,
Ordering(LT, EQ, GT),
Char, String,
fst, snd, curry, uncurry,
Eq((==), (/=)),
Ord(compare, (<), (<=), (>=), (>), max, min),
Enum(succ, pred, toEnum, fromEnum, enumFrom, enumFromThen,
enumFromTo, enumFromThenTo),
Bounded(minBound, maxBound),
Int, Integer, Float, Double,
Rational,
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),
subtract, even, odd, gcd, lcm, (^), (^^),
fromIntegral, realToFrac,
Monad((>>=), (>>), return, fail),
Functor(fmap),
mapM, mapM_, sequence, sequence_, (=<<),
id, const, (.), flip, ($), until,
asTypeOf, error, undefined,
seq, ($!),
map, (++), filter,
head, last, tail, init, null, length, (!!),
reverse,
foldl, foldl1, foldr, foldr1,
and, or, any, all,
sum, product,
concat, concatMap,
maximum, minimum,
scanl, scanl1, scanr, scanr1,
iterate, repeat, replicate, cycle,
take, drop, splitAt, takeWhile, dropWhile, span, break,
elem, notElem, lookup,
zip, zip3, zipWith, zipWith3, unzip, unzip3,
lines, words, unlines, unwords,
ShowS,
Show(showsPrec, showList, show),
shows,
showChar, showString, showParen,
ReadS,
Read(readsPrec, readList),
reads, readParen, read, lex,
IO,
putChar,
putStr, putStrLn, print,
getChar,
getLine, getContents, interact,
FilePath,
readFile, writeFile, appendFile, readIO, readLn,
IOError, ioError, userError,
) where
import Control.Monad
import System.IO
import System.IO.Error
import Data.List
import Data.Either
import Data.Maybe
import Data.Tuple
import GHC.Base
import Text.Read
import GHC.Enum
import GHC.Num
import GHC.Real
import GHC.Float
import GHC.Show
infixr 0 $!
($!) :: (a -> b) -> a -> b
f $! x = let !vx = x in f vx
#ifdef __HADDOCK__
seq :: a -> b -> b
seq _ y = y
#endif