61fb3ce15d73d29f71e1652f4c086694b09badc8
[ghc.git] / compiler / basicTypes / DataCon.hs-boot
1 module DataCon where
2
3 import GhcPrelude
4 import Var( TyVar, TyVarBinder )
5 import Name( Name, NamedThing )
6 import {-# SOURCE #-} TyCon( TyCon )
7 import FieldLabel ( FieldLabel )
8 import Unique ( Uniquable )
9 import Outputable ( Outputable, OutputableBndr )
10 import BasicTypes (Arity)
11 import {-# SOURCE #-} TyCoRep ( Type, ThetaType )
12
13 data DataCon
14 data DataConRep
15 data EqSpec
16
17 dataConName      :: DataCon -> Name
18 dataConTyCon     :: DataCon -> TyCon
19 dataConExTyVars  :: DataCon -> [TyVar]
20 dataConUserTyVars :: DataCon -> [TyVar]
21 dataConUserTyVarBinders :: DataCon -> [TyVarBinder]
22 dataConSourceArity  :: DataCon -> Arity
23 dataConFieldLabels :: DataCon -> [FieldLabel]
24 dataConInstOrigArgTys  :: DataCon -> [Type] -> [Type]
25 dataConStupidTheta :: DataCon -> ThetaType
26 dataConFullSig :: DataCon
27                -> ([TyVar], [TyVar], [EqSpec], ThetaType, [Type], Type)
28 isUnboxedSumCon :: DataCon -> Bool
29
30 instance Eq DataCon
31 instance Uniquable DataCon
32 instance NamedThing DataCon
33 instance Outputable DataCon
34 instance OutputableBndr DataCon