[project @ 1996-01-08 20:28:12 by partain]
[ghc-hetmet.git] / ghc / compiler / abstractSyn / HsPragmas.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface HsPragmas where
3 import HsCore(UnfoldingCoreExpr)
4 import HsDecls(ConDecl)
5 import HsTypes(MonoType)
6 import IdInfo(DeforestInfo, Demand, UpdateInfo)
7 import Maybes(Labda)
8 import Name(Name)
9 import Outputable(Outputable)
10 import PreludePS(_PackedString)
11 import ProtoName(ProtoName)
12 import SimplEnv(UnfoldingGuidance)
13 data ClassOpPragmas a   = NoClassOpPragmas | ClassOpPragmas (GenPragmas a) (GenPragmas a)
14 data ClassPragmas a   = NoClassPragmas | SuperDictPragmas [GenPragmas a]
15 data DataPragmas a   = DataPragmas [ConDecl a] [[Labda (MonoType a)]]
16 data GenPragmas a   = NoGenPragmas | GenPragmas (Labda Int) (Labda UpdateInfo) DeforestInfo (ImpStrictness a) (ImpUnfolding a) [([Labda (MonoType a)], Int, GenPragmas a)]
17 data ImpStrictness a   = NoImpStrictness | ImpStrictness Bool [Demand] (GenPragmas a)
18 data ImpUnfolding a   = NoImpUnfolding | ImpMagicUnfolding _PackedString | ImpUnfolding UnfoldingGuidance (UnfoldingCoreExpr a)
19 data InstancePragmas a   = NoInstancePragmas | SimpleInstancePragma (GenPragmas a) | ConstantInstancePragma (GenPragmas a) [(a, GenPragmas a)] | SpecialisedInstancePragma (GenPragmas a) [([Labda (MonoType a)], Int, InstancePragmas a)]
20 type ProtoNameClassOpPragmas = ClassOpPragmas ProtoName
21 type ProtoNameClassPragmas = ClassPragmas ProtoName
22 type ProtoNameDataPragmas = DataPragmas ProtoName
23 type ProtoNameGenPragmas = GenPragmas ProtoName
24 type ProtoNameInstancePragmas = InstancePragmas ProtoName
25 type ProtoNameUnfoldingCoreExpr = UnfoldingCoreExpr ProtoName
26 type RenamedClassOpPragmas = ClassOpPragmas Name
27 type RenamedClassPragmas = ClassPragmas Name
28 type RenamedDataPragmas = DataPragmas Name
29 type RenamedGenPragmas = GenPragmas Name
30 type RenamedImpStrictness = ImpStrictness Name
31 type RenamedInstancePragmas = InstancePragmas Name
32 data TypePragmas   = NoTypePragmas | AbstractTySynonym
33 instance Outputable a => Outputable (ClassOpPragmas a)
34         {-# GHC_PRAGMA _M_ HsPragmas {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
35 instance Outputable a => Outputable (ClassPragmas a)
36         {-# GHC_PRAGMA _M_ HsPragmas {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
37 instance Outputable a => Outputable (GenPragmas a)
38         {-# GHC_PRAGMA _M_ HsPragmas {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
39 instance Outputable a => Outputable (InstancePragmas a)
40         {-# GHC_PRAGMA _M_ HsPragmas {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
41