module Prelude.Minimal ( -- * Basic data types -- ** @Bool@ Bool(False, True), (&&), (||), not, otherwise, -- ** @Maybe@ Maybe(Nothing, Just), fromMaybe, isNothing, isJust, -- ** @Either@ Either(Left, Right), isLeft, isRight, -- ** @Tuple@ fst, snd, curry, uncurry, -- ** @List@ head, last, tail, init, null, length, (!!), reverse, -- ** @Ordering@ Ordering(LT, EQ, GT), -- * Type Classes -- ** @Category@ Category(id, (.)), -- ** @Monoid@ Monoid(mempty, mappend, mconcat), (<>), -- ** @Functor@ Functor(fmap, (<$)), void, (<$>), ($>), -- ** @Applicative@ Applicative(pure, (<*>), (*>), (<*)), (<**>), -- ** @Monad@ Monad((>>=), (>>)), (=<<), (>=>), (<=<),join, -- ** @Alternative@ Alternative(empty, (<|>), some, many), optional, asum, -- ** @MonadPlus@ MonadPlus (mzero, mplus), guard, msum, mfilter, -- ** @Foldable@ Foldable(fold, foldMap, foldr, foldr', foldl, foldl'), toList, concat, concatMap, and, or, any, all, sum, product, maximum, maximumBy, minimum, minimumBy, elem, notElem, find, -- ** @Traversable@ Traversable(traverse, sequenceA), for, -- ** Basic type classes Eq((==), (/=)), Ord(compare, (<), (<=), (>=), (>), max, min), Enum(succ, pred, toEnum, fromEnum, enumFrom, enumFromThen, enumFromTo, enumFromThenTo), Bounded(minBound, maxBound), -- * Miscellaneous functions const, flip, ($), until, asTypeOf, error, undefined, seq, ($!), -- * @Char@ and @String@ Char, String, -- ** Converting to @String@ ShowS, Show(showsPrec, showList, show), shows, showChar, showString, showParen, -- ** Converting from @String@ ReadS, Read(readsPrec, readList), reads, readParen, read, lex, -- * Basic Input and output IO, -- ** Simple I\/O operations -- All I/O functions defined here are character oriented. The -- treatment of the newline character will vary on different systems. -- For example, two characters of input, return and linefeed, may -- read as a single newline character. These functions cannot be -- used portably for binary I/O. -- *** Output functions putChar, putStr, putStrLn, print, -- *** Input functions getChar, getLine, getContents, interact, -- *** Files FilePath, readFile, writeFile, appendFile, readIO, readLn, -- ** Exception handling in the I\/O monad IOError, ioError, userError, -- * Numbers -- ** Numeric types Int, Integer, Float, Double, Rational, -- ** Numeric type classes 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), -- ** Numeric functions subtract, even, odd, gcd, lcm, (^), (^^), fromIntegral, realToFrac, ) where import GHC.Base import Data.Maybe import Data.Either import Data.Tuple import Data.List import Control.Category (Category(..)) import Data.Monoid import Data.Functor import Control.Applicative import Control.Monad import Data.Foldable import Data.Traversable import GHC.Enum import GHC.Num import GHC.Real import GHC.Float import GHC.Show import Text.Read import System.IO import System.IO.Error import Prelude (($!), seq)