c8035565cd861a6449c99b828eacd0f3d6cdac62
[ghc-hetmet.git] / ghc / compiler / basicTypes / Id.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface Id where
3 import Bag(Bag)
4 import BasicLit(BasicLit)
5 import BinderInfo(BinderInfo)
6 import CharSeq(CSeq)
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)
14 import Maybes(Labda)
15 import Name(Name)
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)
22 import SrcLoc(SrcLoc)
23 import Subst(Subst)
24 import TyCon(Arity(..), TyCon)
25 import TyVar(TyVar, TyVarTemplate)
26 import TyVarEnv(TypeEnv(..))
27 import UniType(TauType(..), ThetaType(..), UniType)
28 import UniqFM(UniqFM)
29 import Unique(Unique, UniqueSupply)
30 data Bag a 
31 data Class 
32 data ClassOp 
33 type ConTag = Int
34 type DataCon = Id
35 type DictFun = Id
36 type DictVar = Id
37 data GlobalSwitch 
38 data IdInfo 
39 data SpecEnv 
40 data SpecInfo 
41 data Inst 
42 data InstTemplate 
43 data Labda a 
44 data Name 
45 data FullName 
46 data Id 
47 data IdDetails 
48 data PprStyle 
49 type Pretty = Int -> Bool -> PrettyRep
50 data PrettyRep 
51 data PrimKind 
52 data UnfoldingDetails 
53 data SrcLoc 
54 data Subst 
55 type Arity = Int
56 data TyCon 
57 data TyVar 
58 data TyVarTemplate 
59 type TypeEnv = UniqFM UniType
60 type TauType = UniType
61 type ThetaType = [(Class, UniType)]
62 data UniType 
63 data UniqFM a 
64 data Unique 
65 data UniqueSupply 
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
80 fIRST_TAG :: Int
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)
147 instance Eq Id
148 instance Ord Id
149 instance NamedThing Id
150 instance Outputable Id
151