{-# LANGUAGE MagicHash #-} {-# OPTIONS_HADDOCK not-home #-} -- | -- Module : GHC.Base -- Copyright : (c) The University of Glasgow, 1992-2002 -- License : see libraries/base/LICENSE -- -- Maintainer : ghc-devs@haskell.org -- Stability : internal -- Portability : non-portable (GHC extensions) -- -- Basic data types and classes. -- -- N.B. This is a legacy module which we would at some point like to -- deprecate and drop from `base`. In short, everything found here is -- better imported from elsewhere. Until we have done so we prefer to -- keep the export list as specific as possible (e.g. avoiding module -- exports) to avoid changes in `ghc-internal` inadvertently -- compromising the stability of this interface. module GHC.Base ( module GHC.Types , module GHC.Prim , module GHC.Prim.Ext , module GHC.Prim.PtrEq , module GHC.Internal.Err , module GHC.Internal.Maybe -- * Equality and ordering , IP(..) , Eq(..) , Ord(..) -- ** Monomorphic equality operators , eqInt, neInt , eqWord, neWord , eqChar, neChar , eqFloat, eqDouble , gtInt, geInt, leInt, ltInt, compareInt, compareInt# , gtWord, geWord, leWord, ltWord, compareWord, compareWord# -- * C Strings , unpackCString#, unpackAppendCString#, unpackFoldrCString# , cstringLength# , unpackCStringUtf8#, unpackAppendCStringUtf8#, unpackFoldrCStringUtf8# , unpackNBytes# -- * Magic combinators , inline, noinline, lazy, oneShot, runRW#, DataToTag(..) , WithDict(withDict) -- * Functions over 'Bool' , (&&), (||), not -- Void , Void , absurd , vacuous -- * Semigroup/Monoid , Semigroup(..) , Monoid(..) -- * Functors , Functor(..) , Applicative(..) , (<**>) , liftA , liftA3 , join , Monad(..) , (=<<) , when , sequence , mapM , liftM , liftM2 , liftM3 , liftM4 , liftM5 , ap , Alternative(..) , MonadPlus(..) -- Lists , NonEmpty(..) , foldr , build , augment , map , mapFB , (++) , String , unsafeChr , ord , eqString , minInt, maxInt -- * Miscellanea , otherwise , id , assert , breakpoint , breakpointCond , Opaque(..) , const , (.) , flip , ($) , ($!) , until , asTypeOf -- * IO , returnIO , bindIO , thenIO , failIO , unIO -- * Low-level integer utilities , getTag , quotInt , remInt , divInt , modInt , quotRemInt , divModInt , shift_mask , shiftL# , shiftRL# , iShiftL# , iShiftRA# , iShiftRL# , divInt#, divInt8#, divInt16#, divInt32# , modInt#, modInt8#, modInt16#, modInt32# , divModInt#, divModInt8#, divModInt16#, divModInt32# ) where import GHC.Internal.Base import GHC.Prim hiding (dataToTagLarge#, dataToTagSmall#, whereFrom#) -- Hide dataToTagLarge# because it is expected to break for -- GHC-internal reasons in the near future, and shouldn't -- be exposed from base (not even GHC.Exts) -- whereFrom# is similarly internal. import GHC.Prim.Ext import GHC.Prim.PtrEq import GHC.Internal.Err import GHC.Internal.Maybe import GHC.Types hiding ( Unit#, Solo#, Tuple0#, Tuple1#, Tuple2#, Tuple3#, Tuple4#, Tuple5#, Tuple6#, Tuple7#, Tuple8#, Tuple9#, Tuple10#, Tuple11#, Tuple12#, Tuple13#, Tuple14#, Tuple15#, Tuple16#, Tuple17#, Tuple18#, Tuple19#, Tuple20#, Tuple21#, Tuple22#, Tuple23#, Tuple24#, Tuple25#, Tuple26#, Tuple27#, Tuple28#, Tuple29#, Tuple30#, Tuple31#, Tuple32#, Tuple33#, Tuple34#, Tuple35#, Tuple36#, Tuple37#, Tuple38#, Tuple39#, Tuple40#, Tuple41#, Tuple42#, Tuple43#, Tuple44#, Tuple45#, Tuple46#, Tuple47#, Tuple48#, Tuple49#, Tuple50#, Tuple51#, Tuple52#, Tuple53#, Tuple54#, Tuple55#, Tuple56#, Tuple57#, Tuple58#, Tuple59#, Tuple60#, Tuple61#, Tuple62#, Tuple63#, Tuple64#, Sum2#, Sum3#, Sum4#, Sum5#, Sum6#, Sum7#, Sum8#, Sum9#, Sum10#, Sum11#, Sum12#, Sum13#, Sum14#, Sum15#, Sum16#, Sum17#, Sum18#, Sum19#, Sum20#, Sum21#, Sum22#, Sum23#, Sum24#, Sum25#, Sum26#, Sum27#, Sum28#, Sum29#, Sum30#, Sum31#, Sum32#, Sum33#, Sum34#, Sum35#, Sum36#, Sum37#, Sum38#, Sum39#, Sum40#, Sum41#, Sum42#, Sum43#, Sum44#, Sum45#, Sum46#, Sum47#, Sum48#, Sum49#, Sum50#, Sum51#, Sum52#, Sum53#, Sum54#, Sum55#, Sum56#, Sum57#, Sum58#, Sum59#, Sum60#, Sum61#, Sum62#, Sum63#, )