HsDecls

# Toplevel declarations

data HsDecl id

type LHsDecl id

data HsDataDefn name

## Class or type declarations

data TyClDecl name

type LTyClDecl name

data TyClGroup name

tyClGroupConcat

mkTyClGroup

isClassDecl

isDataDecl

isSynDecl

tcdName

isFamilyDecl

isTypeFamilyDecl

isDataFamilyDecl

isOpenTypeFamilyInfo

isClosedTypeFamilyInfo

tyFamInstDeclName

tyFamInstDeclLName

countTyClDecls

pprTyClDeclFlavour

tyClDeclLName

tyClDeclTyVars

data FamilyDecl name

type LFamilyDecl name

## Instance declarations

data InstDecl name

type LInstDecl name

data NewOrData

data FamilyInfo name

data TyFamInstDecl name

type LTyFamInstDecl name

instDeclDataFamInsts

data DataFamInstDecl name

type LDataFamInstDecl name

pprDataFamInstFlavour

data TyFamInstEqn name

type LTyFamInstEqn name

type LClsInstDecl name

data ClsInstDecl name

## Standalone deriving declarations

data DerivDecl name

type LDerivDecl name

## `RULE` declarations

data RuleDecl name

type LRuleDecl name

data RuleBndr name

collectRuleBndrSigTys

## `VECTORISE` declarations

data VectDecl name

type LVectDecl name

lvectDeclName

lvectInstDecl

## `default` declarations

data DefaultDecl name

type LDefaultDecl name

## Template haskell declaration splice

data SpliceDecl id

type LSpliceDecl name

## Foreign function interface declarations

data ForeignDecl name

type LForeignDecl name

data ForeignImport

data ForeignExport

noForeignImportCoercionYet

noForeignExportCoercionYet

data CImportSpec

## Data-constructor declarations

data ConDecl name

type LConDecl name

data ResType ty

type HsConDeclDetails name

hsConDeclArgTys

## Document comments

data DocDecl

type LDocDecl

docDeclDoc

## Deprecations

data WarnDecl name

type LWarnDecl name

## Annotations

data AnnDecl name

type LAnnDecl name

data AnnProvenance name

annProvenanceName_maybe

## Role annotations

data RoleAnnotDecl name

type LRoleAnnotDecl name

roleAnnotDeclName

# Grouping

data HsGroup id

emptyRdrGroup

emptyRnGroup

appendGroups