{-# GHC_PRAGMA INTERFACE VERSION 5 #-} interface PrelFuns where import Bag(Bag) import BasicLit(BasicLit) import BinderInfo(BinderInfo) import CharSeq(CSeq) import Class(Class, ClassOp) import CmdLineOpts(GlobalSwitch) import CoreSyn(CoreArg, CoreAtom, CoreBinding, CoreCaseAlternatives, CoreCaseDefault, CoreExpr) import CostCentre(CostCentre) import Id(Id) import IdEnv(IdEnv(..)) import IdInfo(ArgUsage, ArgUsageInfo, ArityInfo, DeforestInfo, Demand, DemandInfo, FBConsum, FBProd, FBType, FBTypeInfo, IdInfo, OptIdInfo(..), SpecEnv, StrictnessInfo, UpdateInfo, arityMaybe, mkArityInfo, mkUnfolding, noIdInfo, noInfo_UF, nullSpecEnv) import InstEnv(InstTemplate) import MagicUFs(MagicUnfoldingFun) import Maybes(Labda) import Name(Name(..)) import NameTypes(FullName, ShortName, mkPreludeCoreName) import Outputable(ExportFlag, NamedThing(..), Outputable(..)) import PlainCore(PlainCoreAtom(..), PlainCoreExpr(..)) import PreludePS(_PackedString) import Pretty(Delay, PprStyle, Pretty(..), PrettyRep) import PrimKind(PrimKind(..)) import PrimOps(PrimOp(..)) import SimplEnv(FormSummary, UnfoldingDetails, UnfoldingGuidance(..)) import SrcLoc(SrcLoc) import TyCon(Arity(..), TyCon) import TyVar(TyVar, TyVarTemplate, alpha_tv, alpha_tyvar, beta_tv, beta_tyvar, delta_tv, delta_tyvar, epsilon_tv, epsilon_tyvar, gamma_tv, gamma_tyvar) import TyVarEnv(TyVarEnv(..)) import UniType(SigmaType(..), TauType(..), ThetaType(..), UniType(..), alpha, alpha_ty, beta, beta_ty, delta, delta_ty, epsilon, epsilon_ty, gamma, gamma_ty) import UniqFM(UniqFM) import Unique(Unique) class OptIdInfo a where noInfo :: a getInfo :: IdInfo -> a addInfo :: IdInfo -> a -> IdInfo ppInfo :: PprStyle -> (Id -> Id) -> a -> Int -> Bool -> PrettyRep class NamedThing a where getExportFlag :: a -> ExportFlag isLocallyDefined :: a -> Bool getOrigName :: a -> (_PackedString, _PackedString) getOccurrenceName :: a -> _PackedString getInformingModules :: a -> [_PackedString] getSrcLoc :: a -> SrcLoc getTheUnique :: a -> Unique hasType :: a -> Bool getType :: a -> UniType fromPreludeCore :: a -> Bool class Outputable a where ppr :: PprStyle -> a -> Int -> Bool -> PrettyRep data Bag a data BasicLit data BinderInfo data Class data ClassOp data GlobalSwitch data CoreArg a data CoreAtom a data CoreBinding a b data CoreCaseAlternatives a b data CoreCaseDefault a b data CoreExpr a b data CostCentre data Id type IdEnv a = UniqFM a data ArgUsage data ArgUsageInfo data ArityInfo data DeforestInfo data Demand data DemandInfo data FBConsum data FBProd data FBType data FBTypeInfo data IdInfo data SpecEnv data StrictnessInfo data UpdateInfo data InstTemplate data Labda a data Name = Short Unique ShortName | WiredInTyCon TyCon | WiredInVal Id | PreludeVal Unique FullName | PreludeTyCon Unique FullName Int Bool | PreludeClass Unique FullName | OtherTyCon Unique FullName Int Bool [Name] | OtherClass Unique FullName [Name] | OtherTopId Unique FullName | ClassOpName Unique Name _PackedString Int | Unbound _PackedString data FullName data ShortName data ExportFlag type PlainCoreAtom = CoreAtom Id type PlainCoreExpr = CoreExpr Id Id data PprStyle type Pretty = Int -> Bool -> PrettyRep data PrettyRep data PrimKind = PtrKind | CodePtrKind | DataPtrKind | RetKind | InfoPtrKind | CostCentreKind | CharKind | IntKind | WordKind | AddrKind | FloatKind | DoubleKind | MallocPtrKind | StablePtrKind | ArrayKind | ByteArrayKind | VoidKind data PrimOp = CharGtOp | CharGeOp | CharEqOp | CharNeOp | CharLtOp | CharLeOp | IntGtOp | IntGeOp | IntEqOp | IntNeOp | IntLtOp | IntLeOp | WordGtOp | WordGeOp | WordEqOp | WordNeOp | WordLtOp | WordLeOp | AddrGtOp | AddrGeOp | AddrEqOp | AddrNeOp | AddrLtOp | AddrLeOp | FloatGtOp | FloatGeOp | FloatEqOp | FloatNeOp | FloatLtOp | FloatLeOp | DoubleGtOp | DoubleGeOp | DoubleEqOp | DoubleNeOp | DoubleLtOp | DoubleLeOp | OrdOp | ChrOp | IntAddOp | IntSubOp | IntMulOp | IntQuotOp | IntDivOp | IntRemOp | IntNegOp | IntAbsOp | AndOp | OrOp | NotOp | SllOp | SraOp | SrlOp | ISllOp | ISraOp | ISrlOp | Int2WordOp | Word2IntOp | Int2AddrOp | Addr2IntOp | FloatAddOp | FloatSubOp | FloatMulOp | FloatDivOp | FloatNegOp | Float2IntOp | Int2FloatOp | FloatExpOp | FloatLogOp | FloatSqrtOp | FloatSinOp | FloatCosOp | FloatTanOp | FloatAsinOp | FloatAcosOp | FloatAtanOp | FloatSinhOp | FloatCoshOp | FloatTanhOp | FloatPowerOp | DoubleAddOp | DoubleSubOp | DoubleMulOp | DoubleDivOp | DoubleNegOp | Double2IntOp | Int2DoubleOp | Double2FloatOp | Float2DoubleOp | DoubleExpOp | DoubleLogOp | DoubleSqrtOp | DoubleSinOp | DoubleCosOp | DoubleTanOp | DoubleAsinOp | DoubleAcosOp | DoubleAtanOp | DoubleSinhOp | DoubleCoshOp | DoubleTanhOp | DoublePowerOp | IntegerAddOp | IntegerSubOp | IntegerMulOp | IntegerQuotRemOp | IntegerDivModOp | IntegerNegOp | IntegerCmpOp | Integer2IntOp | Int2IntegerOp | Word2IntegerOp | Addr2IntegerOp | FloatEncodeOp | FloatDecodeOp | DoubleEncodeOp | DoubleDecodeOp | NewArrayOp | NewByteArrayOp PrimKind | SameMutableArrayOp | SameMutableByteArrayOp | ReadArrayOp | WriteArrayOp | IndexArrayOp | ReadByteArrayOp PrimKind | WriteByteArrayOp PrimKind | IndexByteArrayOp PrimKind | IndexOffAddrOp PrimKind | UnsafeFreezeArrayOp | UnsafeFreezeByteArrayOp | NewSynchVarOp | TakeMVarOp | PutMVarOp | ReadIVarOp | WriteIVarOp | MakeStablePtrOp | DeRefStablePtrOp | CCallOp _PackedString Bool Bool [UniType] UniType | ErrorIOPrimOp | ReallyUnsafePtrEqualityOp | SeqOp | ParOp | ForkOp | DelayOp | WaitOp data UnfoldingDetails data UnfoldingGuidance = UnfoldNever | UnfoldAlways | EssentialUnfolding | UnfoldIfGoodArgs Int Int [Bool] Int | BadUnfolding data SrcLoc type Arity = Int data TyCon data TyVar data TyVarTemplate type TyVarEnv a = UniqFM a type SigmaType = UniType type TauType = UniType type ThetaType = [(Class, UniType)] data UniType = UniTyVar TyVar | UniFun UniType UniType | UniData TyCon [UniType] | UniSyn TyCon [UniType] UniType | UniDict Class UniType | UniTyVarTemplate TyVarTemplate | UniForall TyVarTemplate UniType data UniqFM a data Unique arityMaybe :: ArityInfo -> Labda Int mkArityInfo :: Int -> ArityInfo mkUnfolding :: UnfoldingGuidance -> CoreExpr Id Id -> UnfoldingDetails noIdInfo :: IdInfo noInfo_UF :: UnfoldingDetails nullSpecEnv :: SpecEnv mkPreludeCoreName :: _PackedString -> _PackedString -> FullName alpha_tv :: TyVarTemplate alpha_tyvar :: TyVar beta_tv :: TyVarTemplate beta_tyvar :: TyVar delta_tv :: TyVarTemplate delta_tyvar :: TyVar epsilon_tv :: TyVarTemplate epsilon_tyvar :: TyVar gamma_tv :: TyVarTemplate gamma_tyvar :: TyVar alpha :: UniType alpha_ty :: UniType beta :: UniType beta_ty :: UniType delta :: UniType delta_ty :: UniType epsilon :: UniType epsilon_ty :: UniType gLASGOW_MISC :: _PackedString gLASGOW_ST :: _PackedString gamma :: UniType gamma_ty :: UniType pRELUDE :: _PackedString pRELUDE_BUILTIN :: _PackedString pRELUDE_CORE :: _PackedString pRELUDE_IO :: _PackedString pRELUDE_LIST :: _PackedString pRELUDE_PRIMIO :: _PackedString pRELUDE_PS :: _PackedString pRELUDE_RATIO :: _PackedString pRELUDE_TEXT :: _PackedString pcDataCon :: Unique -> _PackedString -> _PackedString -> [TyVarTemplate] -> [(Class, UniType)] -> [UniType] -> TyCon -> SpecEnv -> Id pcDataTyCon :: Unique -> _PackedString -> _PackedString -> [TyVarTemplate] -> [Id] -> TyCon pcGenerateDataSpecs :: UniType -> SpecEnv pcGenerateSpecs :: Unique -> Id -> IdInfo -> UniType -> SpecEnv pcGenerateTupleSpecs :: Int -> UniType -> SpecEnv pcMiscPrelId :: Unique -> _PackedString -> _PackedString -> UniType -> IdInfo -> Id pcPrimTyCon :: Unique -> _PackedString -> Int -> ([PrimKind] -> PrimKind) -> TyCon