-- Haskell module `Prelude' data Bool = False | True (&&) :: Bool -> Bool -> Bool (||) :: Bool -> Bool -> Bool not :: Bool -> Bool otherwise :: Bool data Maybe a = Nothing | Just a maybe :: b -> (a -> b) -> Maybe a -> b data Either a b = Left a | Right b either :: (a -> c) -> (b -> c) -> Either a b -> c data Ordering = LT | EQ | GT type String = [Char] fst :: (a, b) -> a snd :: (a, b) -> b curry :: ((a, b) -> c) -> a -> b -> c uncurry :: (a -> b -> c) -> (a, b) -> c class Eq a where (==) :: a -> a -> Bool (/=) :: a -> a -> Bool class Eq a => Ord a where compare :: a -> a -> Ordering (<) :: a -> a -> Bool (<=) :: a -> a -> Bool (>) :: a -> a -> Bool (>=) :: a -> a -> Bool max :: a -> a -> a min :: a -> a -> a class Enum a where succ :: a -> a pred :: a -> a toEnum :: Int -> a fromEnum :: a -> Int enumFrom :: a -> [a] enumFromThen :: a -> a -> [a] enumFromTo :: a -> a -> [a] enumFromThenTo :: a -> a -> a -> [a] class Bounded a where minBound :: a maxBound :: a type Rational = Ratio Integer class (Eq a, Show a) => Num a where (+) :: a -> a -> a (-) :: a -> a -> a (*) :: a -> a -> a negate :: a -> a abs :: a -> a signum :: a -> a fromInteger :: Integer -> a class (Num a, Ord a) => Real a where toRational :: a -> Rational class (Real a, Enum a) => Integral a where quot :: a -> a -> a rem :: a -> a -> a div :: a -> a -> a mod :: a -> a -> a quotRem :: a -> a -> (a, a) divMod :: a -> a -> (a, a) toInteger :: a -> Integer class Num a => Fractional a where (/) :: a -> a -> a recip :: a -> a fromRational :: Rational -> a class Fractional a => Floating a where pi :: a exp :: a -> a log :: a -> a sqrt :: a -> a (**) :: a -> a -> a logBase :: a -> a -> a sin :: a -> a cos :: a -> a tan :: a -> a asin :: a -> a acos :: a -> a atan :: a -> a sinh :: a -> a cosh :: a -> a tanh :: a -> a asinh :: a -> a acosh :: a -> a atanh :: a -> a class (Real a, Fractional a) => RealFrac a where properFraction :: Integral b => a -> (b, a) truncate :: Integral b => a -> b round :: Integral b => a -> b ceiling :: Integral b => a -> b floor :: Integral b => a -> b class (RealFrac a, Floating a) => RealFloat a where floatRadix :: a -> Integer floatDigits :: a -> Int floatRange :: a -> (Int, Int) decodeFloat :: a -> (Integer, Int) encodeFloat :: Integer -> Int -> a exponent :: a -> Int significand :: a -> a scaleFloat :: Int -> a -> a isNaN :: a -> Bool isInfinite :: a -> Bool isDenormalized :: a -> Bool isNegativeZero :: a -> Bool isIEEE :: a -> Bool atan2 :: a -> a -> a subtract :: Num a => a -> a -> a even :: Integral a => a -> Bool odd :: Integral a => a -> Bool gcd :: Integral a => a -> a -> a lcm :: Integral a => a -> a -> a (^) :: (Num a, Integral b) => a -> b -> a (^^) :: (Fractional a, Integral b) => a -> b -> a fromIntegral :: (Integral a, Num b) => a -> b realToFrac :: (Real a, Fractional b) => a -> b id :: a -> a const :: a -> b -> a (.) :: (b -> c) -> (a -> b) -> a -> c flip :: (a -> b -> c) -> b -> a -> c ($) :: (a -> b) -> a -> b until :: (a -> Bool) -> (a -> a) -> a -> a asTypeOf :: a -> a -> a error :: String -> a undefined :: a seq :: a -> b -> b ($!) :: (a -> b) -> a -> b map :: (a -> b) -> [a] -> [b] (++) :: [a] -> [a] -> [a] filter :: (a -> Bool) -> [a] -> [a] head :: [a] -> a last :: [a] -> a tail :: [a] -> [a] init :: [a] -> [a] null :: [a] -> Bool length :: [a] -> Int (!!) :: [a] -> Int -> a reverse :: [a] -> [a] foldl :: (a -> b -> a) -> a -> [b] -> a foldl1 :: (a -> a -> a) -> [a] -> a foldr :: (a -> b -> b) -> b -> [a] -> b foldr1 :: (a -> a -> a) -> [a] -> a and :: [Bool] -> Bool or :: [Bool] -> Bool any :: (a -> Bool) -> [a] -> Bool all :: (a -> Bool) -> [a] -> Bool sum :: Num a => [a] -> a product :: Num a => [a] -> a concat :: [[a]] -> [a] concatMap :: (a -> [b]) -> [a] -> [b] maximum :: Ord a => [a] -> a minimum :: Ord a => [a] -> a scanl :: (a -> b -> a) -> a -> [b] -> [a] scanl1 :: (a -> a -> a) -> [a] -> [a] scanr :: (a -> b -> b) -> b -> [a] -> [b] scanr1 :: (a -> a -> a) -> [a] -> [a] iterate :: (a -> a) -> a -> [a] repeat :: a -> [a] replicate :: Int -> a -> [a] cycle :: [a] -> [a] take :: Int -> [a] -> [a] drop :: Int -> [a] -> [a] splitAt :: Int -> [a] -> ([a], [a]) takeWhile :: (a -> Bool) -> [a] -> [a] dropWhile :: (a -> Bool) -> [a] -> [a] span :: (a -> Bool) -> [a] -> ([a], [a]) break :: (a -> Bool) -> [a] -> ([a], [a]) elem :: Eq a => a -> [a] -> Bool notElem :: Eq a => a -> [a] -> Bool lookup :: Eq a => a -> [(a, b)] -> Maybe b zip :: [a] -> [b] -> [(a, b)] zip3 :: [a] -> [b] -> [c] -> [(a, b, c)] zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d] unzip :: [(a, b)] -> ([a], [b]) unzip3 :: [(a, b, c)] -> ([a], [b], [c]) lines :: String -> [String] words :: String -> [String] unlines :: [String] -> String unwords :: [String] -> String type ShowS = String -> String class Show a where showsPrec :: Int -> a -> ShowS show :: a -> String showList :: [a] -> ShowS shows :: Show a => a -> ShowS showChar :: Char -> ShowS showString :: String -> ShowS showParen :: Bool -> ShowS -> ShowS type ReadS a = String -> [(a, String)] class Read a where readsPrec :: Int -> ReadS a readList :: ReadS [a] reads :: Read a => ReadS a readParen :: Bool -> ReadS a -> ReadS a read :: Read a => String -> a lex :: ReadS String type FilePath = String -- Haskell module `Data.Complex' data Complex a = !a :+ !a realPart :: RealFloat a => Complex a -> a imagPart :: RealFloat a => Complex a -> a mkPolar :: RealFloat a => a -> a -> Complex a cis :: RealFloat a => a -> Complex a polar :: RealFloat a => Complex a -> (a, a) magnitude :: RealFloat a => Complex a -> a phase :: RealFloat a => Complex a -> a conjugate :: RealFloat a => Complex a -> Complex a -- Haskell module `Data.List' intersperse :: a -> [a] -> [a] transpose :: [[a]] -> [[a]] foldl' :: (a -> b -> a) -> a -> [b] -> a foldl1' :: (a -> a -> a) -> [a] -> a mapAccumL :: (acc -> x -> (acc, y)) -> acc -> [x] -> (acc, [y]) mapAccumR :: (acc -> x -> (acc, y)) -> acc -> [x] -> (acc, [y]) unfoldr :: (b -> Maybe (a, b)) -> b -> [a] group :: Eq a => [a] -> [[a]] inits :: [a] -> [[a]] tails :: [a] -> [[a]] isPrefixOf :: Eq a => [a] -> [a] -> Bool isSuffixOf :: Eq a => [a] -> [a] -> Bool find :: (a -> Bool) -> [a] -> Maybe a partition :: (a -> Bool) -> [a] -> ([a], [a]) zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)] zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)] zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)] zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)] zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e] zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h] unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d]) unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e]) unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f]) unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g]) nub :: Eq a => [a] -> [a] delete :: Eq a => a -> [a] -> [a] (\\) :: Eq a => [a] -> [a] -> [a] union :: Eq a => [a] -> [a] -> [a] intersect :: Eq a => [a] -> [a] -> [a] sort :: Ord a => [a] -> [a] insert :: Ord a => a -> [a] -> [a] nubBy :: (a -> a -> Bool) -> [a] -> [a] deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a] deleteFirstsBy :: (a -> a -> Bool) -> [a] -> [a] -> [a] unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a] intersectBy :: (a -> a -> Bool) -> [a] -> [a] -> [a] groupBy :: (a -> a -> Bool) -> [a] -> [[a]] sortBy :: (a -> a -> Ordering) -> [a] -> [a] insertBy :: (a -> a -> Ordering) -> a -> [a] -> [a] maximumBy :: (a -> a -> Ordering) -> [a] -> a minimumBy :: (a -> a -> Ordering) -> [a] -> a genericLength :: Num i => [b] -> i genericTake :: Integral i => i -> [a] -> [a] genericDrop :: Integral i => i -> [a] -> [a] genericSplitAt :: Integral i => i -> [b] -> ([b], [b]) genericIndex :: Integral a => [b] -> a -> b genericReplicate :: Integral i => i -> a -> [a] -- Haskell module `Data.Maybe' isJust :: Maybe a -> Bool isNothing :: Maybe a -> Bool fromJust :: Maybe a -> a fromMaybe :: a -> Maybe a -> a listToMaybe :: [a] -> Maybe a maybeToList :: Maybe a -> [a] catMaybes :: [Maybe a] -> [a] mapMaybe :: (a -> Maybe b) -> [a] -> [b] -- Haskell module `Data.Monoid' class Monoid a where mempty :: a mappend :: a -> a -> a mconcat :: [a] -> a -- Haskell module `Data.Ratio' data Ratio a = !a :% !a (%) :: Integral a => a -> a -> Ratio a numerator :: Integral a => Ratio a -> a denominator :: Integral a => Ratio a -> a approxRational :: RealFrac a => a -> a -> Rational