Prelude

# Standard types, classes and related functions

## Basic data types

(&&)
(||)
not
otherwise
data Maybe a
maybe
data Either a b
either
type String

### Tuples

fst
snd
curry
uncurry

## Basic type classes

class Eq a
class Ord a
class Enum a
class Bounded a

## Numbers

### Numeric types

type Rational

### Numeric type classes

class Num a
class Real a
class Integral a
class Fractional a
class Floating a
class RealFrac a
class RealFloat a

### Numeric functions

subtract
even
odd
gcd
lcm
(^)
(^^)
fromIntegral
realToFrac

## Monads and functors

class Monad m
class Functor f
mapM
mapM_
sequence
sequence_
(=<<)

## Miscellaneous functions

id
const
(.)
flip
($)
until
asTypeOf
error
undefined
($!)

# List operations

map
(++)
filter
head
last
tail
init
null
length
(!!)
reverse

## Reducing lists (folds)

foldl
foldl1
foldr
foldr1

### Special folds

and
or
any
all
sum
product
concat
concatMap
maximum
minimum

## Building lists

### Scans

scanl
scanl1
scanr
scanr1

### Infinite lists

iterate
repeat
replicate
cycle

## Sublists

take
drop
splitAt
takeWhile
dropWhile
span
break

## Searching lists

elem
notElem
lookup

## Zipping and unzipping lists

zip
zip3
zipWith
zipWith3
unzip
unzip3

## Functions on strings

lines
words
unlines
unwords

# Converting to and from `String`

## Converting to `String`

type ShowS
class Show a
shows
showChar
showString
showParen

## Converting from `String`

type ReadS a
class Read a
reads
readParen
read
lex

# Basic Input and output

data IO a

## Simple I/O operations

### Output functions

putChar
putStr
putStrLn
print

### Input functions

getChar
getLine
getContents
interact

### Files

type FilePath
readFile
writeFile
appendFile
readIO
readLn

## Exception handling in the I/O monad

type IOError
ioError
userError
catch