[project @ 1996-01-08 20:28:12 by partain]
[ghc-hetmet.git] / ghc / compiler / abstractSyn / HsDecls.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface HsDecls where
3 import HsBinds(MonoBinds, Sig)
4 import HsPat(InPat)
5 import HsPragmas(ClassPragmas, DataPragmas, InstancePragmas, TypePragmas)
6 import HsTypes(MonoType)
7 import Name(Name)
8 import Outputable(NamedThing, Outputable)
9 import PreludePS(_PackedString)
10 import ProtoName(ProtoName)
11 import SrcLoc(SrcLoc)
12 data ClassDecl a b   = ClassDecl [(a, a)] a a [Sig a] (MonoBinds a b) (ClassPragmas a) SrcLoc
13 data ConDecl a   = ConDecl a [MonoType a] SrcLoc
14 data DataTypeSig a   = AbstractTypeSig a SrcLoc | SpecDataSig a (MonoType a) SrcLoc
15 data DefaultDecl a   = DefaultDecl [MonoType a] SrcLoc
16 data FixityDecl a   = InfixL a Int | InfixR a Int | InfixN a Int
17 data InstDecl a b   = InstDecl [(a, a)] a (MonoType a) (MonoBinds a b) Bool _PackedString _PackedString [Sig a] (InstancePragmas a) SrcLoc
18 type ProtoNameClassDecl = ClassDecl ProtoName (InPat ProtoName)
19 type ProtoNameConDecl = ConDecl ProtoName
20 type ProtoNameDataTypeSig = DataTypeSig ProtoName
21 type ProtoNameDefaultDecl = DefaultDecl ProtoName
22 type ProtoNameFixityDecl = FixityDecl ProtoName
23 type ProtoNameInstDecl = InstDecl ProtoName (InPat ProtoName)
24 type ProtoNameSpecialisedInstanceSig = SpecialisedInstanceSig ProtoName
25 type ProtoNameTyDecl = TyDecl ProtoName
26 type RenamedClassDecl = ClassDecl Name (InPat Name)
27 type RenamedConDecl = ConDecl Name
28 type RenamedDataTypeSig = DataTypeSig Name
29 type RenamedDefaultDecl = DefaultDecl Name
30 type RenamedFixityDecl = FixityDecl Name
31 type RenamedInstDecl = InstDecl Name (InPat Name)
32 type RenamedSpecialisedInstanceSig = SpecialisedInstanceSig Name
33 type RenamedTyDecl = TyDecl Name
34 data SpecialisedInstanceSig a   = InstSpecSig a (MonoType a) SrcLoc
35 data TyDecl a   = TyData [(a, a)] a [a] [ConDecl a] [a] (DataPragmas a) SrcLoc | TySynonym a [a] (MonoType a) TypePragmas SrcLoc
36 eqConDecls :: [ConDecl ProtoName] -> [ConDecl ProtoName] -> Bool
37         {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
38 instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (ClassDecl a b)
39         {-# GHC_PRAGMA _M_ HsDecls {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
40 instance (NamedThing a, Outputable a) => Outputable (ConDecl a)
41         {-# GHC_PRAGMA _M_ HsDecls {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
42 instance (NamedThing a, Outputable a) => Outputable (DataTypeSig a)
43         {-# GHC_PRAGMA _M_ HsDecls {-dfun-} _A_ 2 _U_ 02 _N_ _N_ _N_ _N_ #-}
44 instance (NamedThing a, Outputable a) => Outputable (DefaultDecl a)
45         {-# GHC_PRAGMA _M_ HsDecls {-dfun-} _A_ 2 _U_ 02 _N_ _N_ _N_ _N_ #-}
46 instance (NamedThing a, Outputable a) => Outputable (FixityDecl a)
47         {-# GHC_PRAGMA _M_ HsDecls {-dfun-} _A_ 4 _U_ 22 _N_ _S_ "LLLS" _N_ _N_ #-}
48 instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (InstDecl a b)
49         {-# GHC_PRAGMA _M_ HsDecls {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
50 instance (NamedThing a, Outputable a) => Outputable (SpecialisedInstanceSig a)
51         {-# GHC_PRAGMA _M_ HsDecls {-dfun-} _A_ 2 _U_ 02 _N_ _N_ _N_ _N_ #-}
52 instance (NamedThing a, Outputable a) => Outputable (TyDecl a)
53         {-# GHC_PRAGMA _M_ HsDecls {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
54