- [FixityDecl name]
- [TyDecl name]
- [SpecDataSig name] -- user pragmas that modify TyDecls
- [ClassDecl tyvar uvar name pat]
- [InstDecl tyvar uvar name pat]
- [SpecInstSig name] -- user pragmas that modify InstDecls
- [DefaultDecl name]
- (HsBinds tyvar uvar name pat) -- the main stuff!
- [Sig name] -- "Sigs" are folded into the "HsBinds"
- -- pretty early on, so this list is
- -- often either empty or just the
- -- interface signatures.
- SrcLoc
+ [LHsDecl name] -- Type, class, value, and interface signature decls
+ (Maybe DeprecTxt) -- reason/explanation for deprecation of this module
+
+data HsExtCore name -- Read from Foo.hcr
+ = HsExtCore
+ Module
+ [TyClDecl name] -- Type declarations only; just as in Haskell source,
+ -- so that we can infer kinds etc
+ [IfaceBinding] -- And the bindings