Prelude.hs (original) (raw)

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,

#if defined(NHC) , []),

module Data.Tuple,  
()(..),             
(->),               

#endif #ifdef HUGS (:),
#endif

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

#ifndef HUGS import Control.Monad import System.IO import System.IO.Error import Data.List import Data.Either import Data.Maybe import Data.Tuple #endif

#ifdef GLASGOW_HASKELL import GHC.Base import Text.Read import GHC.Enum import GHC.Num import GHC.Real import GHC.Float import GHC.Show import GHC.Err ( undefined ) #endif

#ifdef HUGS import Hugs.Prelude #endif

#ifndef HUGS infixr 0 $! #endif

($!) :: (a -> b) -> a -> b #ifdef GLASGOW_HASKELL f $! x = let !vx = x in f vx
#elif !defined(HUGS) f $! x = x seq f x #endif

#ifdef HADDOCK

seq :: a -> b -> b seq _ y = y #endif