| Safe Haskell | None | 
|---|
HsDecls
Contents
Description
Abstract syntax of global declarations.
Definitions for: TyDecl and ConDecl, ClassDecl,
 InstDecl, DefaultDecl and ForeignDecl.
- data  HsDecl id- = TyClD (TyClDecl id)
- | InstD (InstDecl id)
- | DerivD (DerivDecl id)
- | ValD (HsBind id)
- | SigD (Sig id)
- | DefD (DefaultDecl id)
- | ForD (ForeignDecl id)
- | WarningD (WarnDecl id)
- | AnnD (AnnDecl id)
- | RuleD (RuleDecl id)
- | VectD (VectDecl id)
- | SpliceD (SpliceDecl id)
- | DocD DocDecl
- | QuasiQuoteD (HsQuasiQuote id)
 
- type LHsDecl id = Located (HsDecl id)
- data HsTyDefn name
- data  TyClDecl name- = ForeignType { - tcdLName :: Located name
- tcdExtName :: Maybe FastString
 
- | TyFamily { - tcdFlavour :: FamilyFlavour
- tcdLName :: Located name
- tcdTyVars :: LHsTyVarBndrs name
- tcdKindSig :: Maybe (LHsKind name)
 
- | TyDecl { }
- | ClassDecl { }
 
- = ForeignType { 
- type LTyClDecl name = Located (TyClDecl name)
- type TyClGroup name = [LTyClDecl name]
- isClassDecl :: TyClDecl name -> Bool
- isDataDecl :: TyClDecl name -> Bool
- isSynDecl :: TyClDecl name -> Bool
- isFamilyDecl :: TyClDecl name -> Bool
- isHsDataDefn :: HsTyDefn name -> Bool
- isHsSynDefn :: HsTyDefn name -> Bool
- tcdName :: TyClDecl name -> name
- famInstDeclName :: LFamInstDecl a -> a
- countTyClDecls :: [TyClDecl name] -> (Int, Int, Int, Int, Int)
- pprTyDefnFlavour :: HsTyDefn a -> SDoc
- pprTyClDeclFlavour :: TyClDecl a -> SDoc
- data  InstDecl name- = ClsInstD { - cid_poly_ty :: LHsType name
- cid_binds :: LHsBinds name
- cid_sigs :: [LSig name]
- cid_fam_insts :: [LFamInstDecl name]
 
- | FamInstD { - lid_inst :: FamInstDecl name
 
 
- = ClsInstD { 
- type LInstDecl name = Located (InstDecl name)
- data NewOrData
- data  FamilyFlavour - = TypeFamily
- | DataFamily
 
- data FamInstDecl name = FamInstDecl {}
- type LFamInstDecl name = Located (FamInstDecl name)
- instDeclFamInsts :: [LInstDecl name] -> [FamInstDecl name]
- data  DerivDecl name = DerivDecl {- deriv_type :: LHsType name
 
- type LDerivDecl name = Located (DerivDecl name)
- data RuleDecl name = HsRule RuleName Activation [RuleBndr name] (Located (HsExpr name)) NameSet (Located (HsExpr name)) NameSet
- type LRuleDecl name = Located (RuleDecl name)
- data  RuleBndr name- = RuleBndr (Located name)
- | RuleBndrSig (Located name) (HsWithBndrs (LHsType name))
 
- collectRuleBndrSigTys :: [RuleBndr name] -> [HsWithBndrs (LHsType name)]
- data  VectDecl name- = HsVect (Located name) (Maybe (LHsExpr name))
- | HsNoVect (Located name)
- | HsVectTypeIn Bool (Located name) (Maybe (Located name))
- | HsVectTypeOut Bool TyCon (Maybe TyCon)
- | HsVectClassIn (Located name)
- | HsVectClassOut Class
- | HsVectInstIn (LHsType name)
- | HsVectInstOut ClsInst
 
- type LVectDecl name = Located (VectDecl name)
- lvectDeclName :: NamedThing name => LVectDecl name -> Name
- lvectInstDecl :: LVectDecl name -> Bool
- data DefaultDecl name = DefaultDecl [LHsType name]
- type LDefaultDecl name = Located (DefaultDecl name)
- data SpliceDecl id = SpliceDecl (Located (HsExpr id)) HsExplicitFlag
- data  ForeignDecl name- = ForeignImport (Located name) (LHsType name) Coercion ForeignImport
- | ForeignExport (Located name) (LHsType name) Coercion ForeignExport
 
- type LForeignDecl name = Located (ForeignDecl name)
- data ForeignImport = CImport CCallConv Safety (Maybe Header) CImportSpec
- data ForeignExport = CExport CExportSpec
- noForeignImportCoercionYet :: Coercion
- noForeignExportCoercionYet :: Coercion
- data CImportSpec
- data  ConDecl name = ConDecl {- con_name :: Located name
- con_explicit :: HsExplicitFlag
- con_qvars :: LHsTyVarBndrs name
- con_cxt :: LHsContext name
- con_details :: HsConDeclDetails name
- con_res :: ResType (LHsType name)
- con_doc :: Maybe LHsDocString
- con_old_rec :: Bool
 
- type LConDecl name = Located (ConDecl name)
- data ResType ty
- type HsConDeclDetails name = HsConDetails (LBangType name) [ConDeclField name]
- hsConDeclArgTys :: HsConDeclDetails name -> [LBangType name]
- data DocDecl
- type LDocDecl = Located DocDecl
- docDeclDoc :: DocDecl -> HsDocString
- data WarnDecl name = Warning name WarningTxt
- type LWarnDecl name = Located (WarnDecl name)
- data AnnDecl name = HsAnnotation (AnnProvenance name) (Located (HsExpr name))
- type LAnnDecl name = Located (AnnDecl name)
- data  AnnProvenance name- = ValueAnnProvenance name
- | TypeAnnProvenance name
- | ModuleAnnProvenance
 
- annProvenanceName_maybe :: AnnProvenance name -> Maybe name
- modifyAnnProvenanceNameM :: Monad m => (before -> m after) -> AnnProvenance before -> m (AnnProvenance after)
- data  HsGroup id = HsGroup {- hs_valds :: HsValBinds id
- hs_tyclds :: [[LTyClDecl id]]
- hs_instds :: [LInstDecl id]
- hs_derivds :: [LDerivDecl id]
- hs_fixds :: [LFixitySig id]
- hs_defds :: [LDefaultDecl id]
- hs_fords :: [LForeignDecl id]
- hs_warnds :: [LWarnDecl id]
- hs_annds :: [LAnnDecl id]
- hs_ruleds :: [LRuleDecl id]
- hs_vects :: [LVectDecl id]
- hs_docs :: [LDocDecl]
 
- emptyRdrGroup :: HsGroup a
- emptyRnGroup :: HsGroup a
- appendGroups :: HsGroup a -> HsGroup a -> HsGroup a
Toplevel declarations
data HsDecl id
A Haskell Declaration
Constructors
| TyClD (TyClDecl id) | A type or class declaration. | 
| InstD (InstDecl id) | An instance declaration. | 
| DerivD (DerivDecl id) | |
| ValD (HsBind id) | |
| SigD (Sig id) | |
| DefD (DefaultDecl id) | |
| ForD (ForeignDecl id) | |
| WarningD (WarnDecl id) | |
| AnnD (AnnDecl id) | |
| RuleD (RuleDecl id) | |
| VectD (VectDecl id) | |
| SpliceD (SpliceDecl id) | |
| DocD DocDecl | |
| QuasiQuoteD (HsQuasiQuote id) | 
Instances
| Typeable1 HsDecl | |
| Data id => Data (HsDecl id) | |
| OutputableBndr name => Outputable (HsDecl name) | 
data HsTyDefn name
Constructors
| TySynonym | Synonym expansion | 
| TyData | Declares a data type or newtype, giving its construcors
  | 
| Fields 
 | |
Instances
| Typeable1 HsTyDefn | |
| Data name => Data (HsTyDefn name) | |
| OutputableBndr name => Outputable (HsTyDefn name) | 
Class or type declarations
data TyClDecl name
A type or class declaration.
Constructors
| ForeignType | |
| Fields 
 | |
| TyFamily | type/data family T :: *->* | 
| Fields 
 | |
| TyDecl | |
| Fields 
 | |
| ClassDecl | |
| Fields 
 | |
Instances
| Typeable1 TyClDecl | |
| Data name => Data (TyClDecl name) | |
| OutputableBndr name => Outputable (TyClDecl name) | 
isClassDecl :: TyClDecl name -> Bool
type class
isDataDecl :: TyClDecl name -> Bool
True = argument is a data/newtype
 declaration.
isFamilyDecl :: TyClDecl name -> Bool
type family declaration
isHsDataDefn :: HsTyDefn name -> Bool
isHsSynDefn :: HsTyDefn name -> Bool
famInstDeclName :: LFamInstDecl a -> a
pprTyDefnFlavour :: HsTyDefn a -> SDoc
pprTyClDeclFlavour :: TyClDecl a -> SDoc
Instance declarations
data InstDecl name
Constructors
| ClsInstD | |
| Fields 
 | |
| FamInstD | |
| Fields 
 | |
Instances
| Typeable1 InstDecl | |
| Data name => Data (InstDecl name) | |
| OutputableBndr name => Outputable (InstDecl name) | 
data NewOrData
data FamInstDecl name
Constructors
| FamInstDecl | |
Instances
| Typeable1 FamInstDecl | |
| Data name => Data (FamInstDecl name) | |
| OutputableBndr name => Outputable (FamInstDecl name) | 
type LFamInstDecl name = Located (FamInstDecl name)
instDeclFamInsts :: [LInstDecl name] -> [FamInstDecl name]
Standalone deriving declarations
data DerivDecl name
Constructors
| DerivDecl | |
| Fields 
 | |
Instances
| Typeable1 DerivDecl | |
| Data name => Data (DerivDecl name) | |
| OutputableBndr name => Outputable (DerivDecl name) | 
type LDerivDecl name = Located (DerivDecl name)
RULE declarations
data RuleDecl name
Constructors
| HsRule RuleName Activation [RuleBndr name] (Located (HsExpr name)) NameSet (Located (HsExpr name)) NameSet | 
Instances
| Typeable1 RuleDecl | |
| Data name => Data (RuleDecl name) | |
| OutputableBndr name => Outputable (RuleDecl name) | 
data RuleBndr name
Constructors
| RuleBndr (Located name) | |
| RuleBndrSig (Located name) (HsWithBndrs (LHsType name)) | 
Instances
| Typeable1 RuleBndr | |
| Data name => Data (RuleBndr name) | |
| OutputableBndr name => Outputable (RuleBndr name) | 
collectRuleBndrSigTys :: [RuleBndr name] -> [HsWithBndrs (LHsType name)]
VECTORISE declarations
data VectDecl name
Constructors
| HsVect (Located name) (Maybe (LHsExpr name)) | |
| HsNoVect (Located name) | |
| HsVectTypeIn Bool (Located name) (Maybe (Located name)) | |
| HsVectTypeOut Bool TyCon (Maybe TyCon) | |
| HsVectClassIn (Located name) | |
| HsVectClassOut Class | |
| HsVectInstIn (LHsType name) | |
| HsVectInstOut ClsInst | 
Instances
| Typeable1 VectDecl | |
| Data name => Data (VectDecl name) | |
| OutputableBndr name => Outputable (VectDecl name) | 
lvectDeclName :: NamedThing name => LVectDecl name -> Name
lvectInstDecl :: LVectDecl name -> Bool
default declarations
data DefaultDecl name
Constructors
| DefaultDecl [LHsType name] | 
Instances
| Typeable1 DefaultDecl | |
| Data name => Data (DefaultDecl name) | |
| OutputableBndr name => Outputable (DefaultDecl name) | 
type LDefaultDecl name = Located (DefaultDecl name)
Top-level template haskell splice
data SpliceDecl id
Constructors
| SpliceDecl (Located (HsExpr id)) HsExplicitFlag | 
Instances
| Typeable1 SpliceDecl | |
| Data id => Data (SpliceDecl id) | |
| OutputableBndr name => Outputable (SpliceDecl name) | 
Foreign function interface declarations
data ForeignDecl name
Constructors
| ForeignImport (Located name) (LHsType name) Coercion ForeignImport | |
| ForeignExport (Located name) (LHsType name) Coercion ForeignExport | 
Instances
| Typeable1 ForeignDecl | |
| Data name => Data (ForeignDecl name) | |
| OutputableBndr name => Outputable (ForeignDecl name) | 
type LForeignDecl name = Located (ForeignDecl name)
data ForeignImport
data ForeignExport
Constructors
| CExport CExportSpec | 
Data-constructor declarations
data ConDecl name
Constructors
| ConDecl | |
| Fields 
 | |
Instances
| Typeable1 ConDecl | |
| Data name => Data (ConDecl name) | |
| OutputableBndr name => Outputable (ConDecl name) | 
data ResType ty
Instances
| Typeable1 ResType | |
| Data ty => Data (ResType ty) | |
| Outputable ty => Outputable (ResType ty) | 
type HsConDeclDetails name = HsConDetails (LBangType name) [ConDeclField name]
hsConDeclArgTys :: HsConDeclDetails name -> [LBangType name]
Document comments
data DocDecl
docDeclDoc :: DocDecl -> HsDocString
Deprecations
data WarnDecl name
Constructors
| Warning name WarningTxt | 
Instances
| Typeable1 WarnDecl | |
| Data name => Data (WarnDecl name) | |
| OutputableBndr name => Outputable (WarnDecl name) | 
Annotations
data AnnDecl name
Constructors
| HsAnnotation (AnnProvenance name) (Located (HsExpr name)) | 
Instances
| Typeable1 AnnDecl | |
| Data name => Data (AnnDecl name) | |
| OutputableBndr name => Outputable (AnnDecl name) | 
data AnnProvenance name
Constructors
| ValueAnnProvenance name | |
| TypeAnnProvenance name | |
| ModuleAnnProvenance | 
Instances
| Typeable1 AnnProvenance | |
| Data name => Data (AnnProvenance name) | 
annProvenanceName_maybe :: AnnProvenance name -> Maybe name
modifyAnnProvenanceNameM :: Monad m => (before -> m after) -> AnnProvenance before -> m (AnnProvenance after)
Grouping
data HsGroup id
Constructors
| HsGroup | |
| Fields 
 | |
Instances
| Typeable1 HsGroup | |
| Data id => Data (HsGroup id) | |
| OutputableBndr name => Outputable (HsGroup name) | 
emptyRdrGroup :: HsGroup a
emptyRnGroup :: HsGroup a
appendGroups :: HsGroup a -> HsGroup a -> HsGroup a