[project @ 1996-01-11 14:06:51 by partain]
[ghc-hetmet.git] / ghc / compiler / abstractSyn / AbsSyn.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface AbsSyn where
3 import AbsSynFuns(cmpInstanceTypes, collectBinders, collectMonoBinders, collectMonoBindersAndLocs, collectPatBinders, collectQualBinders, collectTopLevelBinders, collectTypedBinders, collectTypedPatBinders, extractMonoTyNames, getNonPrelOuterTyCon, mkDictApp, mkDictLam, mkTyApp, mkTyLam)
4 import Bag(Bag)
5 import BasicLit(BasicLit)
6 import BinderInfo(BinderInfo)
7 import CharSeq(CSeq)
8 import Class(Class, ClassOp)
9 import CmdLineOpts(GlobalSwitch)
10 import CoreSyn(CoreAtom, CoreExpr)
11 import FiniteMap(FiniteMap)
12 import HsBinds(Bind(..), Binds(..), MonoBinds(..), ProtoNameBind(..), ProtoNameBinds(..), ProtoNameClassOpSig(..), ProtoNameMonoBinds(..), ProtoNameSig(..), RenamedBind(..), RenamedBinds(..), RenamedClassOpSig(..), RenamedMonoBinds(..), RenamedSig(..), Sig(..), TypecheckedBind(..), TypecheckedBinds(..), TypecheckedMonoBinds(..), nullBinds, nullMonoBinds)
13 import HsCore(UfCostCentre, UfId, UnfoldingCoreAlts, UnfoldingCoreAtom, UnfoldingCoreBinding, UnfoldingCoreExpr, UnfoldingPrimOp)
14 import HsDecls(ClassDecl(..), ConDecl(..), DataTypeSig(..), DefaultDecl(..), FixityDecl(..), InstDecl(..), ProtoNameClassDecl(..), ProtoNameConDecl(..), ProtoNameDataTypeSig(..), ProtoNameDefaultDecl(..), ProtoNameFixityDecl(..), ProtoNameInstDecl(..), ProtoNameSpecialisedInstanceSig(..), ProtoNameTyDecl(..), RenamedClassDecl(..), RenamedConDecl(..), RenamedDataTypeSig(..), RenamedDefaultDecl(..), RenamedFixityDecl(..), RenamedInstDecl(..), RenamedSpecialisedInstanceSig(..), RenamedTyDecl(..), SpecialisedInstanceSig(..), TyDecl(..), eqConDecls)
15 import HsExpr(ArithSeqInfo(..), Expr(..), ProtoNameArithSeqInfo(..), ProtoNameExpr(..), ProtoNameQual(..), Qual(..), RenamedArithSeqInfo(..), RenamedExpr(..), RenamedQual(..), TypecheckedArithSeqInfo(..), TypecheckedExpr(..), TypecheckedQual(..))
16 import HsImpExp(IE(..), IfaceImportDecl(..), ImExportListInfo(..), ImportedInterface(..), Interface(..), ProtoNameImportedInterface(..), ProtoNameInterface(..), RenamedImportedInterface(..), RenamedInterface(..), Renaming(..), getIEStrings, getRawIEStrings)
17 import HsLit(Literal(..), negLiteral)
18 import HsMatches(GRHS(..), GRHSsAndBinds(..), Match(..), ProtoNameGRHS(..), ProtoNameGRHSsAndBinds(..), ProtoNameMatch(..), RenamedGRHS(..), RenamedGRHSsAndBinds(..), RenamedMatch(..), TypecheckedGRHS(..), TypecheckedGRHSsAndBinds(..), TypecheckedMatch(..))
19 import HsPat(InPat(..), ProtoNamePat(..), RenamedPat(..), TypecheckedPat(..), irrefutablePat, isConPat, isLitPat, patsAreAllCons, patsAreAllLits, typeOfPat, unfailablePat, unfailablePats)
20 import HsPragmas(ClassOpPragmas, ClassPragmas, DataPragmas, GenPragmas, ImpStrictness, ImpUnfolding, InstancePragmas, ProtoNameClassOpPragmas(..), ProtoNameClassPragmas(..), ProtoNameDataPragmas(..), ProtoNameGenPragmas(..), ProtoNameInstancePragmas(..), RenamedClassOpPragmas(..), RenamedClassPragmas(..), RenamedDataPragmas(..), RenamedGenPragmas(..), RenamedInstancePragmas(..), TypePragmas)
21 import HsTypes(ClassAssertion(..), Context(..), MonoType(..), PolyType(..), ProtoNameContext(..), ProtoNameMonoType(..), ProtoNamePolyType(..), RenamedContext(..), RenamedMonoType(..), RenamedPolyType(..), cmpPolyType, eqMonoType, pprContext)
22 import Id(DictVar(..), Id)
23 import IdEnv(IdEnv(..))
24 import IdInfo(ArgUsage, ArgUsageInfo, ArityInfo, DeforestInfo, Demand, DemandInfo, FBConsum, FBProd, FBType, FBTypeInfo, IdInfo, OptIdInfo(..), SpecEnv, StrictnessInfo, UpdateInfo)
25 import Inst(Inst)
26 import Maybes(Labda)
27 import Name(Name(..))
28 import NameTypes(FullName, ShortName)
29 import Outputable(ExportFlag, NamedThing(..), Outputable(..))
30 import PreludePS(_PackedString)
31 import PreludeRatio(Ratio(..))
32 import Pretty(Delay, PprStyle, Pretty(..), PrettyRep)
33 import PrimKind(PrimKind)
34 import PrimOps(PrimOp)
35 import ProtoName(ProtoName)
36 import RenameAuxFuns(PreludeNameFun(..))
37 import SimplEnv(UnfoldingGuidance)
38 import SrcLoc(SrcLoc)
39 import TyCon(Arity(..), TyCon)
40 import TyVar(TyVar)
41 import UniType(TauType(..), UniType)
42 import UniqFM(UniqFM)
43 import Unique(Unique)
44 class OptIdInfo a where
45         noInfo :: a
46         getInfo :: IdInfo -> a
47         addInfo :: IdInfo -> a -> IdInfo
48         ppInfo :: PprStyle -> (Id -> Id) -> a -> Int -> Bool -> PrettyRep
49 class NamedThing a where
50         getExportFlag :: a -> ExportFlag
51         isLocallyDefined :: a -> Bool
52         getOrigName :: a -> (_PackedString, _PackedString)
53         getOccurrenceName :: a -> _PackedString
54         getInformingModules :: a -> [_PackedString]
55         getSrcLoc :: a -> SrcLoc
56         getTheUnique :: a -> Unique
57         hasType :: a -> Bool
58         getType :: a -> UniType
59         fromPreludeCore :: a -> Bool
60 class Outputable a where
61         ppr :: PprStyle -> a -> Int -> Bool -> PrettyRep
62 data Bag a 
63 data BasicLit 
64 data BinderInfo 
65 data Class 
66 data ClassOp 
67 data CoreAtom a 
68 data CoreExpr a b 
69 data FiniteMap a b 
70 data Bind a b   = EmptyBind | NonRecBind (MonoBinds a b) | RecBind (MonoBinds a b)
71 data Binds a b   = EmptyBinds | ThenBinds (Binds a b) (Binds a b) | SingleBind (Bind a b) | BindWith (Bind a b) [Sig a] | AbsBinds [TyVar] [Id] [(Id, Id)] [(Inst, Expr a b)] (Bind a b)
72 data MonoBinds a b   = EmptyMonoBinds | AndMonoBinds (MonoBinds a b) (MonoBinds a b) | PatMonoBind b (GRHSsAndBinds a b) SrcLoc | VarMonoBind Id (Expr a b) | FunMonoBind a [Match a b] SrcLoc
73 type ProtoNameBind = Bind ProtoName (InPat ProtoName)
74 type ProtoNameBinds = Binds ProtoName (InPat ProtoName)
75 type ProtoNameClassOpSig = Sig ProtoName
76 type ProtoNameMonoBinds = MonoBinds ProtoName (InPat ProtoName)
77 type ProtoNameSig = Sig ProtoName
78 type RenamedBind = Bind Name (InPat Name)
79 type RenamedBinds = Binds Name (InPat Name)
80 type RenamedClassOpSig = Sig Name
81 type RenamedMonoBinds = MonoBinds Name (InPat Name)
82 type RenamedSig = Sig Name
83 data Sig a   = Sig a (PolyType a) (GenPragmas a) SrcLoc | ClassOpSig a (PolyType a) (ClassOpPragmas a) SrcLoc | SpecSig a (PolyType a) (Labda a) SrcLoc | InlineSig a UnfoldingGuidance SrcLoc | DeforestSig a SrcLoc | MagicUnfoldingSig a _PackedString SrcLoc
84 type TypecheckedBind = Bind Id TypecheckedPat
85 type TypecheckedBinds = Binds Id TypecheckedPat
86 type TypecheckedMonoBinds = MonoBinds Id TypecheckedPat
87 data UfCostCentre a 
88 data UnfoldingCoreAtom a 
89 data UnfoldingCoreExpr a 
90 data UnfoldingPrimOp a 
91 data ClassDecl a b   = ClassDecl [(a, a)] a a [Sig a] (MonoBinds a b) (ClassPragmas a) SrcLoc
92 data ConDecl a   = ConDecl a [MonoType a] SrcLoc
93 data DataTypeSig a   = AbstractTypeSig a SrcLoc | SpecDataSig a (MonoType a) SrcLoc
94 data DefaultDecl a   = DefaultDecl [MonoType a] SrcLoc
95 data FixityDecl a   = InfixL a Int | InfixR a Int | InfixN a Int
96 data InstDecl a b   = InstDecl [(a, a)] a (MonoType a) (MonoBinds a b) Bool _PackedString _PackedString [Sig a] (InstancePragmas a) SrcLoc
97 type ProtoNameClassDecl = ClassDecl ProtoName (InPat ProtoName)
98 type ProtoNameConDecl = ConDecl ProtoName
99 type ProtoNameDataTypeSig = DataTypeSig ProtoName
100 type ProtoNameDefaultDecl = DefaultDecl ProtoName
101 type ProtoNameFixityDecl = FixityDecl ProtoName
102 type ProtoNameInstDecl = InstDecl ProtoName (InPat ProtoName)
103 type ProtoNameSpecialisedInstanceSig = SpecialisedInstanceSig ProtoName
104 type ProtoNameTyDecl = TyDecl ProtoName
105 type RenamedClassDecl = ClassDecl Name (InPat Name)
106 type RenamedConDecl = ConDecl Name
107 type RenamedDataTypeSig = DataTypeSig Name
108 type RenamedDefaultDecl = DefaultDecl Name
109 type RenamedFixityDecl = FixityDecl Name
110 type RenamedInstDecl = InstDecl Name (InPat Name)
111 type RenamedSpecialisedInstanceSig = SpecialisedInstanceSig Name
112 type RenamedTyDecl = TyDecl Name
113 data SpecialisedInstanceSig a   = InstSpecSig a (MonoType a) SrcLoc
114 data TyDecl a   = TyData [(a, a)] a [a] [ConDecl a] [a] (DataPragmas a) SrcLoc | TySynonym a [a] (MonoType a) TypePragmas SrcLoc
115 data ArithSeqInfo a b   = From (Expr a b) | FromThen (Expr a b) (Expr a b) | FromTo (Expr a b) (Expr a b) | FromThenTo (Expr a b) (Expr a b) (Expr a b)
116 data Expr a b   = Var a | Lit Literal | Lam (Match a b) | App (Expr a b) (Expr a b) | OpApp (Expr a b) (Expr a b) (Expr a b) | SectionL (Expr a b) (Expr a b) | SectionR (Expr a b) (Expr a b) | CCall _PackedString [Expr a b] Bool Bool UniType | SCC _PackedString (Expr a b) | Case (Expr a b) [Match a b] | If (Expr a b) (Expr a b) (Expr a b) | Let (Binds a b) (Expr a b) | ListComp (Expr a b) [Qual a b] | ExplicitList [Expr a b] | ExplicitListOut UniType [Expr a b] | ExplicitTuple [Expr a b] | ExprWithTySig (Expr a b) (PolyType a) | ArithSeqIn (ArithSeqInfo a b) | ArithSeqOut (Expr a b) (ArithSeqInfo a b) | TyLam [TyVar] (Expr a b) | TyApp (Expr a b) [UniType] | DictLam [Id] (Expr a b) | DictApp (Expr a b) [Id] | ClassDictLam [Id] [Id] (Expr a b) | Dictionary [Id] [Id] | SingleDict Id
117 type ProtoNameArithSeqInfo = ArithSeqInfo ProtoName (InPat ProtoName)
118 type ProtoNameExpr = Expr ProtoName (InPat ProtoName)
119 type ProtoNameQual = Qual ProtoName (InPat ProtoName)
120 data Qual a b   = GeneratorQual b (Expr a b) | FilterQual (Expr a b)
121 type RenamedArithSeqInfo = ArithSeqInfo Name (InPat Name)
122 type RenamedExpr = Expr Name (InPat Name)
123 type RenamedQual = Qual Name (InPat Name)
124 type TypecheckedArithSeqInfo = ArithSeqInfo Id TypecheckedPat
125 type TypecheckedExpr = Expr Id TypecheckedPat
126 type TypecheckedQual = Qual Id TypecheckedPat
127 data IE   = IEVar _PackedString | IEThingAbs _PackedString | IEThingAll _PackedString | IEConWithCons _PackedString [_PackedString] | IEClsWithOps _PackedString [_PackedString] | IEModuleContents _PackedString
128 data IfaceImportDecl   = IfaceImportDecl _PackedString [IE] [Renaming] SrcLoc
129 type ImExportListInfo = (FiniteMap _PackedString ExportFlag, FiniteMap _PackedString ())
130 data ImportedInterface a b   = ImportAll (Interface a b) [Renaming] | ImportSome (Interface a b) [IE] [Renaming] | ImportButHide (Interface a b) [IE] [Renaming]
131 data Interface a b   = MkInterface _PackedString [IfaceImportDecl] [FixityDecl a] [TyDecl a] [ClassDecl a b] [InstDecl a b] [Sig a] SrcLoc
132 type ProtoNameImportedInterface = ImportedInterface ProtoName (InPat ProtoName)
133 type ProtoNameInterface = Interface ProtoName (InPat ProtoName)
134 type RenamedImportedInterface = ImportedInterface Name (InPat Name)
135 type RenamedInterface = Interface Name (InPat Name)
136 data Renaming   = MkRenaming _PackedString _PackedString
137 data Literal   = CharLit Char | CharPrimLit Char | StringLit _PackedString | StringPrimLit _PackedString | IntLit Integer | FracLit (Ratio Integer) | LitLitLitIn _PackedString | LitLitLit _PackedString UniType | IntPrimLit Integer | FloatPrimLit (Ratio Integer) | DoublePrimLit (Ratio Integer)
138 data GRHS a b   = GRHS (Expr a b) (Expr a b) SrcLoc | OtherwiseGRHS (Expr a b) SrcLoc
139 data GRHSsAndBinds a b   = GRHSsAndBindsIn [GRHS a b] (Binds a b) | GRHSsAndBindsOut [GRHS a b] (Binds a b) UniType
140 data Match a b   = PatMatch b (Match a b) | GRHSMatch (GRHSsAndBinds a b)
141 type ProtoNameGRHS = GRHS ProtoName (InPat ProtoName)
142 type ProtoNameGRHSsAndBinds = GRHSsAndBinds ProtoName (InPat ProtoName)
143 type ProtoNameMatch = Match ProtoName (InPat ProtoName)
144 type RenamedGRHS = GRHS Name (InPat Name)
145 type RenamedGRHSsAndBinds = GRHSsAndBinds Name (InPat Name)
146 type RenamedMatch = Match Name (InPat Name)
147 type TypecheckedGRHS = GRHS Id TypecheckedPat
148 type TypecheckedGRHSsAndBinds = GRHSsAndBinds Id TypecheckedPat
149 type TypecheckedMatch = Match Id TypecheckedPat
150 data InPat a   = WildPatIn | VarPatIn a | LitPatIn Literal | LazyPatIn (InPat a) | AsPatIn a (InPat a) | ConPatIn a [InPat a] | ConOpPatIn (InPat a) a (InPat a) | ListPatIn [InPat a] | TuplePatIn [InPat a] | NPlusKPatIn a Literal
151 type ProtoNamePat = InPat ProtoName
152 type RenamedPat = InPat Name
153 data TypecheckedPat   = WildPat UniType | VarPat Id | LazyPat TypecheckedPat | AsPat Id TypecheckedPat | ConPat Id UniType [TypecheckedPat] | ConOpPat TypecheckedPat Id TypecheckedPat UniType | ListPat UniType [TypecheckedPat] | TuplePat [TypecheckedPat] | LitPat Literal UniType | NPat Literal UniType (Expr Id TypecheckedPat) | NPlusKPat Id Literal UniType (Expr Id TypecheckedPat) (Expr Id TypecheckedPat) (Expr Id TypecheckedPat)
154 data ClassOpPragmas a 
155 data ClassPragmas a 
156 data DataPragmas a 
157 data GenPragmas a 
158 data InstancePragmas a 
159 type ProtoNameClassOpPragmas = ClassOpPragmas ProtoName
160 type ProtoNameClassPragmas = ClassPragmas ProtoName
161 type ProtoNameDataPragmas = DataPragmas ProtoName
162 type ProtoNameGenPragmas = GenPragmas ProtoName
163 type ProtoNameInstancePragmas = InstancePragmas ProtoName
164 type RenamedClassOpPragmas = ClassOpPragmas Name
165 type RenamedClassPragmas = ClassPragmas Name
166 type RenamedDataPragmas = DataPragmas Name
167 type RenamedGenPragmas = GenPragmas Name
168 type RenamedInstancePragmas = InstancePragmas Name
169 data TypePragmas 
170 type ClassAssertion a = (a, a)
171 type Context a = [(a, a)]
172 data MonoType a   = MonoTyVar a | MonoTyCon a [MonoType a] | FunMonoTy (MonoType a) (MonoType a) | ListMonoTy (MonoType a) | TupleMonoTy [PolyType a] | MonoTyVarTemplate a | MonoDict a (MonoType a)
173 data PolyType a   = UnoverloadedTy (MonoType a) | OverloadedTy [(a, a)] (MonoType a) | ForAllTy [a] (MonoType a)
174 type ProtoNameContext = [(ProtoName, ProtoName)]
175 type ProtoNameMonoType = MonoType ProtoName
176 type ProtoNamePolyType = PolyType ProtoName
177 type RenamedContext = [(Name, Name)]
178 type RenamedMonoType = MonoType Name
179 type RenamedPolyType = PolyType Name
180 type DictVar = Id
181 data Id 
182 type IdEnv a = UniqFM a
183 data ArgUsage 
184 data ArgUsageInfo 
185 data ArityInfo 
186 data DeforestInfo 
187 data Demand 
188 data DemandInfo 
189 data FBConsum 
190 data FBProd 
191 data FBType 
192 data FBTypeInfo 
193 data IdInfo 
194 data Inst 
195 data Labda a 
196 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
197 data FullName 
198 data ExportFlag 
199 data Module a b   = Module _PackedString [IE] [ImportedInterface a b] [FixityDecl a] [TyDecl a] [DataTypeSig a] [ClassDecl a b] [InstDecl a b] [SpecialisedInstanceSig a] [DefaultDecl a] (Binds a b) [Sig a] SrcLoc
200 data PprStyle 
201 type Pretty = Int -> Bool -> PrettyRep
202 data PrettyRep 
203 data PrimKind 
204 data PrimOp 
205 data ProtoName 
206 type PreludeNameFun = _PackedString -> Labda Name
207 type Arity = Int
208 type ProtoNameModule = Module ProtoName (InPat ProtoName)
209 type RenamedModule = Module Name (InPat Name)
210 data SpecEnv 
211 data StrictnessInfo 
212 data ShortName 
213 data SrcLoc 
214 data TyCon 
215 data TyVar 
216 type TauType = UniType
217 type TypecheckedModule = Module Id TypecheckedPat
218 data UpdateInfo 
219 data UnfoldingGuidance 
220 data UniType 
221 data UniqFM a 
222 data Unique 
223 cmpInstanceTypes :: MonoType ProtoName -> MonoType ProtoName -> Int#
224 collectBinders :: Bind a (InPat a) -> [a]
225 collectMonoBinders :: MonoBinds a (InPat a) -> [a]
226 collectMonoBindersAndLocs :: MonoBinds a (InPat a) -> [(a, SrcLoc)]
227 collectPatBinders :: InPat a -> [a]
228 collectQualBinders :: [Qual Name (InPat Name)] -> [Name]
229 collectTopLevelBinders :: Binds a (InPat a) -> [a]
230 collectTypedBinders :: Bind Id TypecheckedPat -> [Id]
231 collectTypedPatBinders :: TypecheckedPat -> [Id]
232 extractMonoTyNames :: (a -> a -> Bool) -> MonoType a -> [a]
233 getNonPrelOuterTyCon :: MonoType ProtoName -> Labda ProtoName
234 mkDictApp :: Expr Id TypecheckedPat -> [Id] -> Expr Id TypecheckedPat
235 mkDictLam :: [Id] -> Expr Id TypecheckedPat -> Expr Id TypecheckedPat
236 mkTyApp :: Expr Id TypecheckedPat -> [UniType] -> Expr Id TypecheckedPat
237 mkTyLam :: [TyVar] -> Expr Id TypecheckedPat -> Expr Id TypecheckedPat
238 nullBinds :: Binds a b -> Bool
239 nullMonoBinds :: MonoBinds a b -> Bool
240 eqConDecls :: [ConDecl ProtoName] -> [ConDecl ProtoName] -> Bool
241 getIEStrings :: [IE] -> (FiniteMap _PackedString ExportFlag, FiniteMap _PackedString ())
242 getRawIEStrings :: [IE] -> ([(_PackedString, ExportFlag)], [_PackedString])
243 negLiteral :: Literal -> Literal
244 irrefutablePat :: TypecheckedPat -> Bool
245 isConPat :: TypecheckedPat -> Bool
246 isLitPat :: TypecheckedPat -> Bool
247 patsAreAllCons :: [TypecheckedPat] -> Bool
248 patsAreAllLits :: [TypecheckedPat] -> Bool
249 typeOfPat :: TypecheckedPat -> UniType
250 unfailablePat :: TypecheckedPat -> Bool
251 unfailablePats :: [TypecheckedPat] -> Bool
252 cmpPolyType :: (a -> a -> Int#) -> PolyType a -> PolyType a -> Int#
253 eqMonoType :: MonoType ProtoName -> MonoType ProtoName -> Bool
254 pprContext :: Outputable a => PprStyle -> [(a, a)] -> Int -> Bool -> PrettyRep
255 instance Eq BasicLit
256 instance Eq Class
257 instance Eq ClassOp
258 instance Eq Id
259 instance Eq Demand
260 instance Eq FBConsum
261 instance Eq FBProd
262 instance Eq FBType
263 instance Eq UpdateInfo
264 instance Eq Name
265 instance Eq PrimKind
266 instance Eq PrimOp
267 instance Eq TyCon
268 instance Eq TyVar
269 instance Eq Unique
270 instance OptIdInfo ArgUsageInfo
271 instance OptIdInfo ArityInfo
272 instance OptIdInfo DeforestInfo
273 instance OptIdInfo DemandInfo
274 instance OptIdInfo FBTypeInfo
275 instance OptIdInfo SpecEnv
276 instance OptIdInfo StrictnessInfo
277 instance OptIdInfo UpdateInfo
278 instance Ord BasicLit
279 instance Ord Class
280 instance Ord ClassOp
281 instance Ord Id
282 instance Ord Demand
283 instance Ord UpdateInfo
284 instance Ord Name
285 instance Ord PrimKind
286 instance Ord TyCon
287 instance Ord TyVar
288 instance Ord Unique
289 instance NamedThing Class
290 instance NamedThing a => NamedThing (InPat a)
291 instance NamedThing TypecheckedPat
292 instance NamedThing Id
293 instance NamedThing Name
294 instance NamedThing FullName
295 instance NamedThing ShortName
296 instance NamedThing ProtoName
297 instance NamedThing TyCon
298 instance NamedThing TyVar
299 instance (Outputable a, Outputable b) => Outputable (a, b)
300 instance (Outputable a, Outputable b, Outputable c) => Outputable (a, b, c)
301 instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (Module a b)
302 instance Outputable BasicLit
303 instance Outputable Bool
304 instance Outputable Class
305 instance Outputable ClassOp
306 instance Outputable a => Outputable (FiniteMap a b)
307 instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (Bind a b)
308 instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (Binds a b)
309 instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (MonoBinds a b)
310 instance Outputable a => Outputable (Sig a)
311 instance Outputable a => Outputable (UnfoldingCoreAtom a)
312 instance Outputable a => Outputable (UnfoldingCoreExpr a)
313 instance Outputable a => Outputable (UnfoldingPrimOp a)
314 instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (ClassDecl a b)
315 instance (NamedThing a, Outputable a) => Outputable (ConDecl a)
316 instance (NamedThing a, Outputable a) => Outputable (DataTypeSig a)
317 instance (NamedThing a, Outputable a) => Outputable (DefaultDecl a)
318 instance (NamedThing a, Outputable a) => Outputable (FixityDecl a)
319 instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (InstDecl a b)
320 instance (NamedThing a, Outputable a) => Outputable (SpecialisedInstanceSig a)
321 instance (NamedThing a, Outputable a) => Outputable (TyDecl a)
322 instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (ArithSeqInfo a b)
323 instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (Expr a b)
324 instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (Qual a b)
325 instance Outputable IE
326 instance Outputable IfaceImportDecl
327 instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (ImportedInterface a b)
328 instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (Interface a b)
329 instance Outputable Renaming
330 instance Outputable Literal
331 instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (GRHS a b)
332 instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (GRHSsAndBinds a b)
333 instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (Match a b)
334 instance Outputable a => Outputable (InPat a)
335 instance Outputable TypecheckedPat
336 instance Outputable a => Outputable (ClassOpPragmas a)
337 instance Outputable a => Outputable (ClassPragmas a)
338 instance Outputable a => Outputable (GenPragmas a)
339 instance Outputable a => Outputable (InstancePragmas a)
340 instance Outputable a => Outputable (MonoType a)
341 instance Outputable a => Outputable (PolyType a)
342 instance Outputable Id
343 instance Outputable Demand
344 instance Outputable Inst
345 instance Outputable Name
346 instance Outputable FullName
347 instance Outputable ShortName
348 instance Outputable PrimKind
349 instance Outputable PrimOp
350 instance Outputable ProtoName
351 instance Outputable SrcLoc
352 instance Outputable TyCon
353 instance Outputable TyVar
354 instance Outputable a => Outputable [a]
355 instance Text Demand
356 instance Text UpdateInfo
357 instance Text Unique
358