{-# LANGUAGE Trustworthy #-}{-# LANGUAGE NoImplicitPrelude #-}{-# LANGUAGE ExplicitNamespaces #-}------------------------------------------------------------------------------- |-- Module : Prelude-- Copyright : (c) The University of Glasgow 2001-- License : BSD-style (see the file libraries/base/LICENSE)---- Maintainer : libraries@haskell.org-- Stability : stable-- Portability : portable---- The Prelude: a standard module. The Prelude is imported by default-- into all Haskell modules unless either there is an explicit import-- statement for it, or the NoImplicitPrelude extension is enabled.-------------------------------------------------------------------------------modulePrelude (-- * Standard types, classes and related functions-- ** Basic data typesBool (False ,True ),(&&) ,(||) ,not ,otherwise ,Maybe (Nothing ,Just ),maybe ,Either (Left ,Right ),either ,Ordering (LT ,EQ ,GT ),Char ,String ,-- *** Tuplesfst ,snd ,curry ,uncurry ,-- ** Basic type classesEq ((==) ,(/=) ),Ord (compare ,(<) ,(<=) ,(>=) ,(>) ,max ,min ),Enum (succ ,pred ,toEnum ,fromEnum ,enumFrom ,enumFromThen ,enumFromTo ,enumFromThenTo ),Bounded (minBound ,maxBound ),-- ** Numbers-- *** Numeric typesInt ,Integer,Float ,Double ,Rational ,Word ,-- *** Numeric type classesNum ((+) ,(-),(*) ,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 functionssubtract ,even ,odd ,gcd ,lcm ,(^) ,(^^) ,fromIntegral ,realToFrac ,-- ** Semigroups and MonoidsSemigroup ((<>) ),Monoid (mempty ,mappend ,mconcat ),-- ** Monads and functorsFunctor (fmap ,(<$) ),(<$>) ,Applicative (pure ,(<*>) ,(*>) ,(<*) ,liftA2 ),Monad ((>>=) ,(>>) ,return ),MonadFail (fail ),mapM_ ,sequence_ ,(=<<) ,-- ** Folds and traversalsFoldable (elem ,-- :: (Foldable t, Eq a) => a -> t a -> Bool-- fold, -- :: Monoid m => t m -> mfoldMap ,-- :: Monoid m => (a -> m) -> t a -> mfoldr ,-- :: (a -> b -> b) -> b -> t a -> b-- foldr', -- :: (a -> b -> b) -> b -> t a -> bfoldl ,-- :: (b -> a -> b) -> b -> t a -> bfoldl' ,-- :: (b -> a -> b) -> b -> t a -> bfoldr1 ,-- :: (a -> a -> a) -> t a -> afoldl1 ,-- :: (a -> a -> a) -> t a -> amaximum ,-- :: (Foldable t, Ord a) => t a -> aminimum ,-- :: (Foldable t, Ord a) => t a -> aproduct ,-- :: (Foldable t, Num a) => t a -> asum ),-- :: Num a => t a -> a-- toList) -- :: Foldable t => t a -> [a]Traversable (traverse ,sequenceA ,mapM ,sequence ),-- ** Miscellaneous functionsid ,const ,(.) ,flip ,($) ,until ,asTypeOf ,error ,errorWithoutStackTrace ,undefined ,seq ,($!) ,-- * List operationsList.map ,(List.++) ,List.filter ,List.head ,List.last ,List.tail ,List.init ,(List.!!) ,Foldable.null ,Foldable.length ,List.reverse ,-- *** Special foldsFoldable.and ,Foldable.or ,Foldable.any ,Foldable.all ,Foldable.concat ,Foldable.concatMap ,-- ** Building lists-- *** ScansList.scanl ,List.scanl1 ,List.scanr ,List.scanr1 ,-- *** Infinite listsList.iterate ,List.repeat ,List.replicate ,List.cycle ,-- ** SublistsList.take ,List.drop ,List.takeWhile ,List.dropWhile ,List.span ,List.break ,List.splitAt ,-- ** Searching listsFoldable.notElem ,List.lookup ,-- ** Zipping and unzipping listsList.zip ,List.zip3 ,List.zipWith ,List.zipWith3 ,List.unzip ,List.unzip3 ,-- ** Functions on stringsList.lines ,List.words ,List.unlines ,List.unwords ,-- * Converting to and from @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 outputIO ,-- ** 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 functionsputChar ,putStr ,putStrLn ,print ,-- *** Input functionsgetChar ,getLine ,getContents ,interact ,-- *** FilesFilePath ,readFile ,writeFile ,appendFile ,readIO ,readLn ,-- ** Exception handling in the I\/O monadIOError ,ioError ,userError ,-- ** The equality typestype(~) )whereimportGHC.Internal.Control.Monad importGHC.Internal.System.IO importGHC.Internal.System.IO.Error importqualifiedGHC.Internal.Data.List asListimportGHC.Internal.Data.Either importGHC.Internal.Data.Foldable (Foldable (..))importqualifiedGHC.Internal.Data.Foldable asFoldableimportGHC.Internal.Data.Functor ((<$>) )importGHC.Internal.Data.Maybe importGHC.Internal.Data.Traversable (Traversable (..))importGHC.Internal.Data.Tuple importGHC.Internal.Base hiding(foldr ,mapM ,sequence )importGHC.Internal.Text.Read importGHC.Internal.Enum importGHC.Internal.Num importGHC.Internal.Real importGHC.Internal.Float importGHC.Internal.Show