1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
4 import BasicLit(BasicLit)
5 import BinderInfo(BinderInfo)
7 import Class(Class, ClassOp)
8 import CmdLineOpts(GlobalSwitch)
9 import CoreSyn(CoreAtom, CoreExpr)
10 import IdInfo(ArgUsageInfo, ArityInfo, DemandInfo, FBTypeInfo, IdInfo, SpecEnv, SpecInfo, StrictnessInfo, UpdateInfo, nullSpecEnv)
11 import Inst(Inst, InstOrigin, OverloadedLit)
12 import InstEnv(InstTemplate)
13 import MagicUFs(MagicUnfoldingFun)
16 import NameTypes(FullName, ShortName)
17 import Outputable(NamedThing, Outputable)
18 import PreludePS(_PackedString)
19 import Pretty(Delay, PprStyle, Pretty(..), PrettyRep)
20 import PrimKind(PrimKind)
21 import SimplEnv(FormSummary, UnfoldingDetails, UnfoldingGuidance)
24 import TyCon(Arity(..), TyCon)
25 import TyVar(TyVar, TyVarTemplate)
26 import TyVarEnv(TypeEnv(..))
27 import UniType(TauType(..), ThetaType(..), UniType)
29 import Unique(Unique, UniqueSupply)
49 type Pretty = Int -> Bool -> PrettyRep
59 type TypeEnv = UniqFM UniType
60 type TauType = UniType
61 type ThetaType = [(Class, UniType)]
66 addIdArgUsageInfo :: Id -> ArgUsageInfo -> Id
67 addIdArity :: Id -> Int -> Id
68 addIdDemandInfo :: Id -> DemandInfo -> Id
69 addIdFBTypeInfo :: Id -> FBTypeInfo -> Id
70 addIdSpecialisation :: Id -> SpecEnv -> Id
71 addIdStrictness :: Id -> StrictnessInfo -> Id
72 addIdUnfolding :: Id -> UnfoldingDetails -> Id
73 addIdUpdateInfo :: Id -> UpdateInfo -> Id
74 applySubstToId :: Subst -> Id -> (Subst, Id)
75 applyTypeEnvToId :: UniqFM UniType -> Id -> Id
76 cmpId :: Id -> Id -> Int#
77 cmpId_withSpecDataCon :: Id -> Id -> Int#
78 eqId :: Id -> Id -> Bool
79 externallyVisibleId :: Id -> Bool
81 getDataConArity :: Id -> Int
82 getDataConSig :: Id -> ([TyVarTemplate], [(Class, UniType)], [UniType], TyCon)
83 getDataConTag :: Id -> Int
84 getDataConTyCon :: Id -> TyCon
85 getIdArgUsageInfo :: Id -> ArgUsageInfo
86 getIdArity :: Id -> ArityInfo
87 getIdDemandInfo :: Id -> DemandInfo
88 getIdFBTypeInfo :: Id -> FBTypeInfo
89 getIdInfo :: Id -> IdInfo
90 getIdKind :: Id -> PrimKind
91 getIdSpecialisation :: Id -> SpecEnv
92 getIdStrictness :: Id -> StrictnessInfo
93 getIdUnfolding :: Id -> UnfoldingDetails
94 getIdUniType :: Id -> UniType
95 getIdUpdateInfo :: Id -> UpdateInfo
96 getInstNamePieces :: Bool -> Inst -> [_PackedString]
97 getInstantiatedDataConSig :: Id -> [UniType] -> ([UniType], [UniType], UniType)
98 getMentionedTyConsAndClassesFromId :: Id -> (Bag TyCon, Bag Class)
99 idWantsToBeINLINEd :: Id -> Bool
100 isBottomingId :: Id -> Bool
101 isClassOpId :: Id -> Bool
102 isConstMethodId :: Id -> Bool
103 isDataCon :: Id -> Bool
104 isDefaultMethodId :: Id -> Bool
105 isDictFunId :: Id -> Bool
106 isImportedId :: Id -> Bool
107 isInstId_maybe :: Id -> Labda Inst
108 isNullaryDataCon :: Id -> Bool
109 isSpecId_maybe :: Id -> Labda (Id, [Labda UniType])
110 isSpecPragmaId_maybe :: Id -> Labda (Labda SpecInfo)
111 isSuperDictSelId_maybe :: Id -> Labda (Class, Class)
112 isSysLocalId :: Id -> Bool
113 isTopLevId :: Id -> Bool
114 isTupleCon :: Id -> Bool
115 isWorkerId :: Id -> Bool
116 isWrapperId :: Id -> Bool
117 localiseId :: Id -> Id
118 mkClassOpId :: Unique -> Class -> ClassOp -> UniType -> IdInfo -> Id
119 mkConstMethodId :: Unique -> Class -> ClassOp -> UniType -> UniType -> Bool -> IdInfo -> Id
120 mkDataCon :: Unique -> FullName -> [TyVarTemplate] -> [(Class, UniType)] -> [UniType] -> TyCon -> SpecEnv -> Id
121 mkDefaultMethodId :: Unique -> Class -> ClassOp -> Bool -> UniType -> IdInfo -> Id
122 mkDictFunId :: Unique -> Class -> UniType -> UniType -> Bool -> IdInfo -> Id
123 mkId :: Name -> UniType -> IdInfo -> Id
124 mkIdWithNewUniq :: Id -> Unique -> Id
125 mkImported :: Unique -> FullName -> UniType -> IdInfo -> Id
126 mkInstId :: Inst -> Id
127 mkPreludeId :: Unique -> FullName -> UniType -> IdInfo -> Id
128 mkSameSpecCon :: [Labda UniType] -> Id -> Id
129 mkSpecId :: Unique -> Id -> [Labda UniType] -> UniType -> IdInfo -> Id
130 mkSpecPragmaId :: _PackedString -> Unique -> UniType -> Labda SpecInfo -> SrcLoc -> Id
131 mkSuperDictSelId :: Unique -> Class -> Class -> UniType -> IdInfo -> Id
132 mkSysLocal :: _PackedString -> Unique -> UniType -> SrcLoc -> Id
133 mkTemplateLocals :: [UniType] -> [Id]
134 mkTupleCon :: Int -> Id
135 mkUserLocal :: _PackedString -> Unique -> UniType -> SrcLoc -> Id
136 mkWorkerId :: Unique -> Id -> UniType -> IdInfo -> Id
137 myWrapperMaybe :: Id -> Labda Id
138 nullSpecEnv :: SpecEnv
139 pprIdInUnfolding :: UniqFM Id -> Id -> Int -> Bool -> PrettyRep
140 replaceIdInfo :: Id -> IdInfo -> Id
141 showId :: PprStyle -> Id -> [Char]
142 toplevelishId :: Id -> Bool
143 unfoldingUnfriendlyId :: Id -> Bool
144 unlocaliseId :: _PackedString -> Id -> Labda Id
145 updateIdType :: Id -> UniType -> Id
146 whatsMentionedInId :: UniqFM Id -> Id -> (Bag Id, Bag TyCon, Bag Class)
149 instance NamedThing Id
150 instance Outputable Id