[project @ 1996-01-18 16:33:17 by partain]
[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 getInstIdModule :: Id -> _PackedString
97 getInstNamePieces :: Bool -> Inst -> [_PackedString]
98 getInstantiatedDataConSig :: Id -> [UniType] -> ([UniType], [UniType], UniType)
99 getMentionedTyConsAndClassesFromId :: Id -> (Bag TyCon, Bag Class)
100 idWantsToBeINLINEd :: Id -> Bool
101 isBottomingId :: Id -> Bool
102 isClassOpId :: Id -> Bool
103 isConstMethodId_maybe :: Id -> Labda (Class, UniType, ClassOp)
104 isDataCon :: Id -> Bool
105 isDefaultMethodId_maybe :: Id -> Labda (Class, ClassOp, Bool)
106 isDictFunId :: Id -> Bool
107 isImportedId :: Id -> Bool
108 isInstId_maybe :: Id -> Labda Inst
109 isNullaryDataCon :: Id -> Bool
110 isSpecId_maybe :: Id -> Labda (Id, [Labda UniType])
111 isSpecPragmaId_maybe :: Id -> Labda (Labda SpecInfo)
112 isSuperDictSelId_maybe :: Id -> Labda (Class, Class)
113 isSysLocalId :: Id -> Bool
114 isTopLevId :: Id -> Bool
115 isTupleCon :: Id -> Bool
116 isWorkerId :: Id -> Bool
117 isWrapperId :: Id -> Bool
118 localiseId :: Id -> Id
119 mkClassOpId :: Unique -> Class -> ClassOp -> UniType -> IdInfo -> Id
120 mkConstMethodId :: Unique -> Class -> ClassOp -> UniType -> UniType -> Bool -> _PackedString -> IdInfo -> Id
121 mkDataCon :: Unique -> FullName -> [TyVarTemplate] -> [(Class, UniType)] -> [UniType] -> TyCon -> SpecEnv -> Id
122 mkDefaultMethodId :: Unique -> Class -> ClassOp -> Bool -> UniType -> IdInfo -> Id
123 mkDictFunId :: Unique -> Class -> UniType -> UniType -> Bool -> _PackedString -> IdInfo -> Id
124 mkId :: Name -> UniType -> IdInfo -> Id
125 mkIdWithNewUniq :: Id -> Unique -> Id
126 mkImported :: Unique -> FullName -> UniType -> IdInfo -> Id
127 mkInstId :: Inst -> Id
128 mkPreludeId :: Unique -> FullName -> UniType -> IdInfo -> Id
129 mkSameSpecCon :: [Labda UniType] -> Id -> Id
130 mkSpecId :: Unique -> Id -> [Labda UniType] -> UniType -> IdInfo -> Id
131 mkSpecPragmaId :: _PackedString -> Unique -> UniType -> Labda SpecInfo -> SrcLoc -> Id
132 mkSuperDictSelId :: Unique -> Class -> Class -> UniType -> IdInfo -> Id
133 mkSysLocal :: _PackedString -> Unique -> UniType -> SrcLoc -> Id
134 mkTemplateLocals :: [UniType] -> [Id]
135 mkTupleCon :: Int -> Id
136 mkUserLocal :: _PackedString -> Unique -> UniType -> SrcLoc -> Id
137 mkWorkerId :: Unique -> Id -> UniType -> IdInfo -> Id
138 myWrapperMaybe :: Id -> Labda Id
139 nullSpecEnv :: SpecEnv
140 pprIdInUnfolding :: UniqFM Id -> Id -> Int -> Bool -> PrettyRep
141 replaceIdInfo :: Id -> IdInfo -> Id
142 selectIdInfoForSpecId :: Id -> IdInfo
143 showId :: PprStyle -> Id -> [Char]
144 toplevelishId :: Id -> Bool
145 unfoldingUnfriendlyId :: Id -> Bool
146 unlocaliseId :: _PackedString -> Id -> Labda Id
147 updateIdType :: Id -> UniType -> Id
148 whatsMentionedInId :: UniqFM Id -> Id -> (Bag Id, Bag TyCon, Bag Class)
149 instance Eq Id
150 instance Ord Id
151 instance NamedThing Id
152 instance Outputable Id
153