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,
(==), (/=),
compare, (<), (<=), (>=), (>), max, min,
Enum(succ, pred, toEnum, fromEnum, enumFrom, enumFromThen,
enumFromTo, enumFromThenTo),
Bounded(minBound, maxBound),
Integer,
(+), (), (*), negate, abs, signum, fromInteger,
quot, rem, div, mod, quotRem, divMod, toInteger,
subtract, even, odd, gcd, lcm, (^),
fromIntegral,
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, catch
)
where
import "base" Prelude hiding ( Num(..), Integral(..), subtract, even
, odd, gcd, lcm, (^)
, length, (!!), sum, product
, take, drop
, Ord(..), Eq(..)
)
import qualified "base" Prelude as P
import qualified Data.List as L
(+), (), (*) :: Integer -> Integer -> Integer
(+) = (P.+)
() = (P.-)
(*) = (P.*)
negate, abs, signum, fromInteger :: Integer -> Integer
negate = P.negate
abs = P.abs
signum = P.signum
fromInteger = P.fromInteger
quot, rem, div, mod :: Integer -> Integer -> Integer
quot = P.quot
rem = P.rem
div = P.div
mod = P.mod
quotRem, divMod :: Integer -> Integer -> (Integer, Integer)
quotRem = P.quotRem
divMod = P.divMod
toInteger :: Integer -> Integer
toInteger = P.toInteger
subtract, gcd, lcm, (^) :: Integer -> Integer -> Integer
subtract = P.subtract
gcd = P.gcd
lcm = P.lcm
(^) = (P.^)
even, odd :: Integer -> Bool
even = P.even
odd = P.odd
length :: [a] -> Integer
length = L.genericLength
(!!) :: [a] -> Integer -> a
(!!) = L.genericIndex
sum, product :: [Integer] -> Integer
sum = P.sum
product = P.product
take, drop :: Integer -> [a] -> [a]
take = L.genericTake
drop = L.genericDrop
compare :: Integer -> Integer -> Ordering
compare = P.compare
(<), (<=), (>=), (>) :: Integer -> Integer -> Bool
(<) = (P.<)
(<=) = (P.<=)
(>=) = (P.>=)
(>) = (P.>)
max, min :: Integer -> Integer -> Integer
max = P.max
min = P.min
(==), (/=) :: Integer -> Integer -> Bool
(==) = (P.==)
(/=) = (P./=)