HsDecls

# Toplevel declarations

data HsDecl id

type LHsDecl id

data HsTyDefn name

## Class or type declarations

data TyClDecl name

type LTyClDecl name

type TyClGroup name

isClassDecl

isDataDecl

isSynDecl

isFamilyDecl

isHsDataDefn

isHsSynDefn

tcdName

famInstDeclName

countTyClDecls

pprTyDefnFlavour

pprTyClDeclFlavour

## Instance declarations

data InstDecl name

type LInstDecl name

data NewOrData

data FamilyFlavour

data FamInstDecl name

type LFamInstDecl name

instDeclFamInsts

## 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

## Top-level template haskell splice

data SpliceDecl id

## 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

modifyAnnProvenanceNameM

# Grouping

data HsGroup id

emptyRdrGroup

emptyRnGroup

appendGroups