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