{-# GHC_PRAGMA INTERFACE VERSION 5 #-} interface Id where import Bag(Bag) import BasicLit(BasicLit) import BinderInfo(BinderInfo) import CharSeq(CSeq) import Class(Class, ClassOp) import CmdLineOpts(GlobalSwitch) import CoreSyn(CoreAtom, CoreExpr) import IdInfo(ArgUsageInfo, ArityInfo, DemandInfo, FBTypeInfo, IdInfo, SpecEnv, SpecInfo, StrictnessInfo, UpdateInfo, nullSpecEnv) import Inst(Inst, InstOrigin, OverloadedLit) import InstEnv(InstTemplate) import MagicUFs(MagicUnfoldingFun) import Maybes(Labda) import Name(Name) import NameTypes(FullName, ShortName) import Outputable(NamedThing, Outputable) import PreludePS(_PackedString) import Pretty(Delay, PprStyle, Pretty(..), PrettyRep) import PrimKind(PrimKind) import SimplEnv(FormSummary, UnfoldingDetails, UnfoldingGuidance) import SrcLoc(SrcLoc) import Subst(Subst) import TyCon(Arity(..), TyCon) import TyVar(TyVar, TyVarTemplate) import TyVarEnv(TypeEnv(..)) import UniType(TauType(..), ThetaType(..), UniType) import UniqFM(UniqFM) import Unique(Unique, UniqueSupply) data Bag a data Class data ClassOp type ConTag = Int type DataCon = Id type DictFun = Id type DictVar = Id data GlobalSwitch data IdInfo data SpecEnv data SpecInfo data Inst data InstTemplate data Labda a data Name data FullName data Id data IdDetails data PprStyle type Pretty = Int -> Bool -> PrettyRep data PrettyRep data PrimKind data UnfoldingDetails data SrcLoc data Subst type Arity = Int data TyCon data TyVar data TyVarTemplate type TypeEnv = UniqFM UniType type TauType = UniType type ThetaType = [(Class, UniType)] data UniType data UniqFM a data Unique data UniqueSupply addIdArgUsageInfo :: Id -> ArgUsageInfo -> Id addIdArity :: Id -> Int -> Id addIdDemandInfo :: Id -> DemandInfo -> Id addIdFBTypeInfo :: Id -> FBTypeInfo -> Id addIdSpecialisation :: Id -> SpecEnv -> Id addIdStrictness :: Id -> StrictnessInfo -> Id addIdUnfolding :: Id -> UnfoldingDetails -> Id addIdUpdateInfo :: Id -> UpdateInfo -> Id applySubstToId :: Subst -> Id -> (Subst, Id) applyTypeEnvToId :: UniqFM UniType -> Id -> Id cmpId :: Id -> Id -> Int# cmpId_withSpecDataCon :: Id -> Id -> Int# eqId :: Id -> Id -> Bool externallyVisibleId :: Id -> Bool fIRST_TAG :: Int getDataConArity :: Id -> Int getDataConSig :: Id -> ([TyVarTemplate], [(Class, UniType)], [UniType], TyCon) getDataConTag :: Id -> Int getDataConTyCon :: Id -> TyCon getIdArgUsageInfo :: Id -> ArgUsageInfo getIdArity :: Id -> ArityInfo getIdDemandInfo :: Id -> DemandInfo getIdFBTypeInfo :: Id -> FBTypeInfo getIdInfo :: Id -> IdInfo getIdKind :: Id -> PrimKind getIdSpecialisation :: Id -> SpecEnv getIdStrictness :: Id -> StrictnessInfo getIdUnfolding :: Id -> UnfoldingDetails getIdUniType :: Id -> UniType getIdUpdateInfo :: Id -> UpdateInfo getInstIdModule :: Id -> _PackedString getInstNamePieces :: Bool -> Inst -> [_PackedString] getInstantiatedDataConSig :: Id -> [UniType] -> ([UniType], [UniType], UniType) getMentionedTyConsAndClassesFromId :: Id -> (Bag TyCon, Bag Class) idWantsToBeINLINEd :: Id -> Bool isBottomingId :: Id -> Bool isClassOpId :: Id -> Bool isConstMethodId_maybe :: Id -> Labda (Class, UniType, ClassOp) isDataCon :: Id -> Bool isDefaultMethodId_maybe :: Id -> Labda (Class, ClassOp, Bool) isDictFunId :: Id -> Bool isImportedId :: Id -> Bool isInstId_maybe :: Id -> Labda Inst isNullaryDataCon :: Id -> Bool isSpecId_maybe :: Id -> Labda (Id, [Labda UniType]) isSpecPragmaId_maybe :: Id -> Labda (Labda SpecInfo) isSuperDictSelId_maybe :: Id -> Labda (Class, Class) isSysLocalId :: Id -> Bool isTopLevId :: Id -> Bool isTupleCon :: Id -> Bool isWorkerId :: Id -> Bool isWrapperId :: Id -> Bool localiseId :: Id -> Id mkClassOpId :: Unique -> Class -> ClassOp -> UniType -> IdInfo -> Id mkConstMethodId :: Unique -> Class -> ClassOp -> UniType -> UniType -> Bool -> _PackedString -> IdInfo -> Id mkDataCon :: Unique -> FullName -> [TyVarTemplate] -> [(Class, UniType)] -> [UniType] -> TyCon -> SpecEnv -> Id mkDefaultMethodId :: Unique -> Class -> ClassOp -> Bool -> UniType -> IdInfo -> Id mkDictFunId :: Unique -> Class -> UniType -> UniType -> Bool -> _PackedString -> IdInfo -> Id mkId :: Name -> UniType -> IdInfo -> Id mkIdWithNewUniq :: Id -> Unique -> Id mkImported :: Unique -> FullName -> UniType -> IdInfo -> Id mkInstId :: Inst -> Id mkPreludeId :: Unique -> FullName -> UniType -> IdInfo -> Id mkSameSpecCon :: [Labda UniType] -> Id -> Id mkSpecId :: Unique -> Id -> [Labda UniType] -> UniType -> IdInfo -> Id mkSpecPragmaId :: _PackedString -> Unique -> UniType -> Labda SpecInfo -> SrcLoc -> Id mkSuperDictSelId :: Unique -> Class -> Class -> UniType -> IdInfo -> Id mkSysLocal :: _PackedString -> Unique -> UniType -> SrcLoc -> Id mkTemplateLocals :: [UniType] -> [Id] mkTupleCon :: Int -> Id mkUserLocal :: _PackedString -> Unique -> UniType -> SrcLoc -> Id mkWorkerId :: Unique -> Id -> UniType -> IdInfo -> Id myWrapperMaybe :: Id -> Labda Id nullSpecEnv :: SpecEnv pprIdInUnfolding :: UniqFM Id -> Id -> Int -> Bool -> PrettyRep replaceIdInfo :: Id -> IdInfo -> Id selectIdInfoForSpecId :: Id -> IdInfo showId :: PprStyle -> Id -> [Char] toplevelishId :: Id -> Bool unfoldingUnfriendlyId :: Id -> Bool unlocaliseId :: _PackedString -> Id -> Labda Id updateIdType :: Id -> UniType -> Id whatsMentionedInId :: UniqFM Id -> Id -> (Bag Id, Bag TyCon, Bag Class) instance Eq Id instance Ord Id instance NamedThing Id instance Outputable Id