packages feed

haskell-tools-ast 0.2.0.0 → 0.3.0.0

raw patch · 46 files changed

+2407/−2236 lines, 46 filesdep ~basedep ~mtldep ~referencesPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base, mtl, references, template-haskell, uniplate

API changes (from Hackage documentation)

- Language.Haskell.Tools.AST.Ann: AnnList :: NodeInfo (SemanticInfo dom (AnnList elem)) (ListInfo stage) -> [Ann elem dom stage] -> AnnList elem dom stage
- Language.Haskell.Tools.AST.Ann: AnnMaybe :: NodeInfo (SemanticInfo dom (AnnMaybe elem)) (OptionalInfo stage) -> Maybe (Ann elem dom stage) -> AnnMaybe elem dom stage
- Language.Haskell.Tools.AST.Ann: data AnnList elem dom stage
- Language.Haskell.Tools.AST.Ann: data AnnMaybe elem dom stage
- Language.Haskell.Tools.AST.Ann: instance (Language.Haskell.Tools.AST.Ann.ApplySemaChange (Language.Haskell.Tools.AST.Ann.SemaInfoClassify e), Language.Haskell.Tools.AST.Ann.SemanticTraversal e) => Language.Haskell.Tools.AST.Ann.SemanticTraversal (Language.Haskell.Tools.AST.Ann.AnnList e)
- Language.Haskell.Tools.AST.Ann: instance (Language.Haskell.Tools.AST.Ann.ApplySemaChange (Language.Haskell.Tools.AST.Ann.SemaInfoClassify e), Language.Haskell.Tools.AST.Ann.SemanticTraversal e) => Language.Haskell.Tools.AST.Ann.SemanticTraversal (Language.Haskell.Tools.AST.Ann.AnnMaybe e)
- Language.Haskell.Tools.AST.Ann: instance Language.Haskell.Tools.AST.Ann.SourceInfo stage => Language.Haskell.Tools.AST.Ann.HasRange (Language.Haskell.Tools.AST.Ann.AnnList elem dom stage)
- Language.Haskell.Tools.AST.Ann: instance Language.Haskell.Tools.AST.Ann.SourceInfo stage => Language.Haskell.Tools.AST.Ann.HasRange (Language.Haskell.Tools.AST.Ann.AnnMaybe elem dom stage)
- Language.Haskell.Tools.AST.Ann: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal e => Language.Haskell.Tools.AST.Ann.SourceInfoTraversal (Language.Haskell.Tools.AST.Ann.AnnList e)
- Language.Haskell.Tools.AST.Ann: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal e => Language.Haskell.Tools.AST.Ann.SourceInfoTraversal (Language.Haskell.Tools.AST.Ann.AnnMaybe e)
- Language.Haskell.Tools.AST.Base: AssocLeft :: Assoc dom stage
- Language.Haskell.Tools.AST.Base: AssocNone :: Assoc dom stage
- Language.Haskell.Tools.AST.Base: AssocRight :: Assoc dom stage
- Language.Haskell.Tools.AST.Base: BacktickOp :: Ann QualifiedName dom stage -> Operator dom stage
- Language.Haskell.Tools.AST.Base: CApi :: CallConv dom stage
- Language.Haskell.Tools.AST.Base: CCall :: CallConv dom stage
- Language.Haskell.Tools.AST.Base: CPlusPlus :: CallConv dom stage
- Language.Haskell.Tools.AST.Base: ConlikeAnnot :: ConlikeAnnot dom stage
- Language.Haskell.Tools.AST.Base: DataKeyword :: DataOrNewtypeKeyword dom stage
- Language.Haskell.Tools.AST.Base: DisableOverlap :: OverlapPragma dom stage
- Language.Haskell.Tools.AST.Base: DoKeyword :: DoKind dom stage
- Language.Haskell.Tools.AST.Base: DotNet :: CallConv dom stage
- Language.Haskell.Tools.AST.Base: EnableOverlap :: OverlapPragma dom stage
- Language.Haskell.Tools.AST.Base: ImplicitName :: Ann QualifiedName dom stage -> Name dom stage
- Language.Haskell.Tools.AST.Base: IncoherentOverlap :: OverlapPragma dom stage
- Language.Haskell.Tools.AST.Base: Interruptible :: Safety dom stage
- Language.Haskell.Tools.AST.Base: JavaScript :: CallConv dom stage
- Language.Haskell.Tools.AST.Base: Js :: CallConv dom stage
- Language.Haskell.Tools.AST.Base: Jvm :: CallConv dom stage
- Language.Haskell.Tools.AST.Base: LeftAppl :: ArrowAppl dom stage
- Language.Haskell.Tools.AST.Base: LeftHighApp :: ArrowAppl dom stage
- Language.Haskell.Tools.AST.Base: LineNumber :: Int -> LineNumber dom stage
- Language.Haskell.Tools.AST.Base: MDoKeyword :: DoKind dom stage
- Language.Haskell.Tools.AST.Base: ModuleName :: String -> ModuleName dom stage
- Language.Haskell.Tools.AST.Base: NewtypeKeyword :: DataOrNewtypeKeyword dom stage
- Language.Haskell.Tools.AST.Base: Nominal :: Role dom stage
- Language.Haskell.Tools.AST.Base: NormalName :: Ann QualifiedName dom stage -> Name dom stage
- Language.Haskell.Tools.AST.Base: NormalOp :: Ann QualifiedName dom stage -> Operator dom stage
- Language.Haskell.Tools.AST.Base: Overlappable :: OverlapPragma dom stage
- Language.Haskell.Tools.AST.Base: Overlapping :: OverlapPragma dom stage
- Language.Haskell.Tools.AST.Base: Overlaps :: OverlapPragma dom stage
- Language.Haskell.Tools.AST.Base: ParenName :: Ann QualifiedName dom stage -> Name dom stage
- Language.Haskell.Tools.AST.Base: Phantom :: Role dom stage
- Language.Haskell.Tools.AST.Base: PhaseControl :: AnnMaybe PhaseInvert dom stage -> Ann PhaseNumber dom stage -> PhaseControl dom stage
- Language.Haskell.Tools.AST.Base: PhaseInvert :: PhaseInvert dom stage
- Language.Haskell.Tools.AST.Base: PhaseNumber :: Integer -> PhaseNumber dom stage
- Language.Haskell.Tools.AST.Base: Precedence :: Int -> Precedence dom stage
- Language.Haskell.Tools.AST.Base: QualifiedName :: AnnList UnqualName dom stage -> Ann UnqualName dom stage -> QualifiedName dom stage
- Language.Haskell.Tools.AST.Base: Representational :: Role dom stage
- Language.Haskell.Tools.AST.Base: RightAppl :: ArrowAppl dom stage
- Language.Haskell.Tools.AST.Base: RightHighApp :: ArrowAppl dom stage
- Language.Haskell.Tools.AST.Base: Safe :: Safety dom stage
- Language.Haskell.Tools.AST.Base: StdCall :: CallConv dom stage
- Language.Haskell.Tools.AST.Base: StringNode :: String -> StringNode dom stage
- Language.Haskell.Tools.AST.Base: ThreadSafe :: Safety dom stage
- Language.Haskell.Tools.AST.Base: TypeKeyword :: TypeKeyword dom stage
- Language.Haskell.Tools.AST.Base: UnqualName :: String -> UnqualName dom stage
- Language.Haskell.Tools.AST.Base: Unsafe :: Safety dom stage
- Language.Haskell.Tools.AST.Base: [_lineNumber] :: LineNumber dom stage -> Int
- Language.Haskell.Tools.AST.Base: [_moduleNameString] :: ModuleName dom stage -> String
- Language.Haskell.Tools.AST.Base: [_operatorName] :: Operator dom stage -> Ann QualifiedName dom stage
- Language.Haskell.Tools.AST.Base: [_phaseNum] :: PhaseNumber dom stage -> Integer
- Language.Haskell.Tools.AST.Base: [_phaseNumber] :: PhaseControl dom stage -> Ann PhaseNumber dom stage
- Language.Haskell.Tools.AST.Base: [_phaseUntil] :: PhaseControl dom stage -> AnnMaybe PhaseInvert dom stage
- Language.Haskell.Tools.AST.Base: [_precedenceValue] :: Precedence dom stage -> Int
- Language.Haskell.Tools.AST.Base: [_qualifiers] :: QualifiedName dom stage -> AnnList UnqualName dom stage
- Language.Haskell.Tools.AST.Base: [_simpleNameStr] :: UnqualName dom stage -> String
- Language.Haskell.Tools.AST.Base: [_simpleName] :: Name dom stage -> Ann QualifiedName dom stage
- Language.Haskell.Tools.AST.Base: [_stringNodeStr] :: StringNode dom stage -> String
- Language.Haskell.Tools.AST.Base: [_unqualifiedName] :: QualifiedName dom stage -> Ann UnqualName dom stage
- Language.Haskell.Tools.AST.Base: data ArrowAppl dom stage
- Language.Haskell.Tools.AST.Base: data Assoc dom stage
- Language.Haskell.Tools.AST.Base: data CallConv dom stage
- Language.Haskell.Tools.AST.Base: data ConlikeAnnot dom stage
- Language.Haskell.Tools.AST.Base: data DataOrNewtypeKeyword dom stage
- Language.Haskell.Tools.AST.Base: data DoKind dom stage
- Language.Haskell.Tools.AST.Base: data LineNumber dom stage
- Language.Haskell.Tools.AST.Base: data ModuleName dom stage
- Language.Haskell.Tools.AST.Base: data Name dom stage
- Language.Haskell.Tools.AST.Base: data Operator dom stage
- Language.Haskell.Tools.AST.Base: data OverlapPragma dom stage
- Language.Haskell.Tools.AST.Base: data PhaseControl dom stage
- Language.Haskell.Tools.AST.Base: data PhaseInvert dom stage
- Language.Haskell.Tools.AST.Base: data PhaseNumber dom stage
- Language.Haskell.Tools.AST.Base: data Precedence dom stage
- Language.Haskell.Tools.AST.Base: data QualifiedName dom stage
- Language.Haskell.Tools.AST.Base: data Role dom stage
- Language.Haskell.Tools.AST.Base: data Safety dom stage
- Language.Haskell.Tools.AST.Base: data StringNode dom stage
- Language.Haskell.Tools.AST.Base: data TypeKeyword dom stage
- Language.Haskell.Tools.AST.Base: data UnqualName dom stage
- Language.Haskell.Tools.AST.Base: nameFromList :: AnnList UnqualName dom stage -> QualifiedName dom stage
- Language.Haskell.Tools.AST.Binds: AnnPragma :: Ann AnnotationSubject dom stage -> Ann Expr dom stage -> TopLevelPragma dom stage
- Language.Haskell.Tools.AST.Binds: DeprPragma :: AnnList Name dom stage -> Ann StringNode dom stage -> TopLevelPragma dom stage
- Language.Haskell.Tools.AST.Binds: FixitySignature :: Ann Assoc dom stage -> Ann Precedence dom stage -> AnnList Operator dom stage -> FixitySignature dom stage
- Language.Haskell.Tools.AST.Binds: FunBind :: AnnList Match dom stage -> ValueBind dom stage
- Language.Haskell.Tools.AST.Binds: GuardBind :: Ann Pattern dom stage -> Ann Expr dom stage -> RhsGuard dom stage
- Language.Haskell.Tools.AST.Binds: GuardCheck :: Ann Expr dom stage -> RhsGuard dom stage
- Language.Haskell.Tools.AST.Binds: GuardLet :: AnnList LocalBind dom stage -> RhsGuard dom stage
- Language.Haskell.Tools.AST.Binds: GuardedRhs :: AnnList RhsGuard dom stage -> Ann Expr dom stage -> GuardedRhs dom stage
- Language.Haskell.Tools.AST.Binds: GuardedRhss :: AnnList GuardedRhs dom stage -> Rhs dom stage
- Language.Haskell.Tools.AST.Binds: InfixLhs :: Ann Pattern dom stage -> Ann Operator dom stage -> Ann Pattern dom stage -> AnnList Pattern dom stage -> MatchLhs dom stage
- Language.Haskell.Tools.AST.Binds: InlinablePragma :: AnnMaybe PhaseControl dom stage -> Ann Name dom stage -> TopLevelPragma dom stage
- Language.Haskell.Tools.AST.Binds: InlinePragma :: AnnMaybe ConlikeAnnot dom stage -> AnnMaybe PhaseControl dom stage -> Ann Name dom stage -> TopLevelPragma dom stage
- Language.Haskell.Tools.AST.Binds: LinePragma :: Ann LineNumber dom stage -> AnnMaybe StringNode dom stage -> TopLevelPragma dom stage
- Language.Haskell.Tools.AST.Binds: LocalBinds :: AnnList LocalBind dom stage -> LocalBinds dom stage
- Language.Haskell.Tools.AST.Binds: LocalFixity :: Ann FixitySignature dom stage -> LocalBind dom stage
- Language.Haskell.Tools.AST.Binds: LocalSignature :: Ann TypeSignature dom stage -> LocalBind dom stage
- Language.Haskell.Tools.AST.Binds: LocalValBind :: Ann ValueBind dom stage -> LocalBind dom stage
- Language.Haskell.Tools.AST.Binds: Match :: Ann MatchLhs dom stage -> Ann Rhs dom stage -> AnnMaybe LocalBinds dom stage -> Match dom stage
- Language.Haskell.Tools.AST.Binds: MinimalAnd :: AnnList MinimalFormula dom stage -> MinimalFormula dom stage
- Language.Haskell.Tools.AST.Binds: MinimalName :: Ann Name dom stage -> MinimalFormula dom stage
- Language.Haskell.Tools.AST.Binds: MinimalOr :: AnnList MinimalFormula dom stage -> MinimalFormula dom stage
- Language.Haskell.Tools.AST.Binds: MinimalParen :: Ann MinimalFormula dom stage -> MinimalFormula dom stage
- Language.Haskell.Tools.AST.Binds: ModuleAnnotation :: AnnotationSubject dom stage
- Language.Haskell.Tools.AST.Binds: NameAnnotation :: Ann Name dom stage -> AnnotationSubject dom stage
- Language.Haskell.Tools.AST.Binds: NoInlinePragma :: AnnMaybe ConlikeAnnot dom stage -> AnnMaybe PhaseControl dom stage -> Ann Name dom stage -> TopLevelPragma dom stage
- Language.Haskell.Tools.AST.Binds: NormalLhs :: Ann Name dom stage -> AnnList Pattern dom stage -> MatchLhs dom stage
- Language.Haskell.Tools.AST.Binds: Rule :: Ann StringNode dom stage -> AnnMaybe PhaseControl dom stage -> AnnList TyVar dom stage -> Ann Expr dom stage -> Ann Expr dom stage -> Rule dom stage
- Language.Haskell.Tools.AST.Binds: RulePragma :: AnnList Rule dom stage -> TopLevelPragma dom stage
- Language.Haskell.Tools.AST.Binds: SimpleBind :: Ann Pattern dom stage -> Ann Rhs dom stage -> AnnMaybe LocalBinds dom stage -> ValueBind dom stage
- Language.Haskell.Tools.AST.Binds: SpecializePragma :: AnnMaybe PhaseControl dom stage -> Ann Name dom stage -> AnnList Type dom stage -> TopLevelPragma dom stage
- Language.Haskell.Tools.AST.Binds: TypeAnnotation :: Ann Name dom stage -> AnnotationSubject dom stage
- Language.Haskell.Tools.AST.Binds: TypeSignature :: AnnList Name dom stage -> Ann Type dom stage -> TypeSignature dom stage
- Language.Haskell.Tools.AST.Binds: UnguardedRhs :: Ann Expr dom stage -> Rhs dom stage
- Language.Haskell.Tools.AST.Binds: WarningPragma :: AnnList Name dom stage -> Ann StringNode dom stage -> TopLevelPragma dom stage
- Language.Haskell.Tools.AST.Binds: [_annotateExpr] :: TopLevelPragma dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Binds: [_annotateName] :: AnnotationSubject dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Binds: [_annotationSubject] :: TopLevelPragma dom stage -> Ann AnnotationSubject dom stage
- Language.Haskell.Tools.AST.Binds: [_fixityAssoc] :: FixitySignature dom stage -> Ann Assoc dom stage
- Language.Haskell.Tools.AST.Binds: [_fixityOperators] :: FixitySignature dom stage -> AnnList Operator dom stage
- Language.Haskell.Tools.AST.Binds: [_fixityPrecedence] :: FixitySignature dom stage -> Ann Precedence dom stage
- Language.Haskell.Tools.AST.Binds: [_funBindMatches] :: ValueBind dom stage -> AnnList Match dom stage
- Language.Haskell.Tools.AST.Binds: [_guardBinds] :: RhsGuard dom stage -> AnnList LocalBind dom stage
- Language.Haskell.Tools.AST.Binds: [_guardCheck] :: RhsGuard dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Binds: [_guardExpr] :: GuardedRhs dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Binds: [_guardPat] :: RhsGuard dom stage -> Ann Pattern dom stage
- Language.Haskell.Tools.AST.Binds: [_guardRhs] :: RhsGuard dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Binds: [_guardStmts] :: GuardedRhs dom stage -> AnnList RhsGuard dom stage
- Language.Haskell.Tools.AST.Binds: [_inlinableDef] :: TopLevelPragma dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Binds: [_inlineDef] :: TopLevelPragma dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Binds: [_localBinds] :: LocalBinds dom stage -> AnnList LocalBind dom stage
- Language.Haskell.Tools.AST.Binds: [_localFixity] :: LocalBind dom stage -> Ann FixitySignature dom stage
- Language.Haskell.Tools.AST.Binds: [_localSig] :: LocalBind dom stage -> Ann TypeSignature dom stage
- Language.Haskell.Tools.AST.Binds: [_localVal] :: LocalBind dom stage -> Ann ValueBind dom stage
- Language.Haskell.Tools.AST.Binds: [_matchBinds] :: Match dom stage -> AnnMaybe LocalBinds dom stage
- Language.Haskell.Tools.AST.Binds: [_matchLhsArgs] :: MatchLhs dom stage -> AnnList Pattern dom stage
- Language.Haskell.Tools.AST.Binds: [_matchLhsLhs] :: MatchLhs dom stage -> Ann Pattern dom stage
- Language.Haskell.Tools.AST.Binds: [_matchLhsName] :: MatchLhs dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Binds: [_matchLhsOperator] :: MatchLhs dom stage -> Ann Operator dom stage
- Language.Haskell.Tools.AST.Binds: [_matchLhsRhs] :: MatchLhs dom stage -> Ann Pattern dom stage
- Language.Haskell.Tools.AST.Binds: [_matchLhs] :: Match dom stage -> Ann MatchLhs dom stage
- Language.Haskell.Tools.AST.Binds: [_matchRhs] :: Match dom stage -> Ann Rhs dom stage
- Language.Haskell.Tools.AST.Binds: [_minimalAnds] :: MinimalFormula dom stage -> AnnList MinimalFormula dom stage
- Language.Haskell.Tools.AST.Binds: [_minimalInner] :: MinimalFormula dom stage -> Ann MinimalFormula dom stage
- Language.Haskell.Tools.AST.Binds: [_minimalName] :: MinimalFormula dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Binds: [_minimalOrs] :: MinimalFormula dom stage -> AnnList MinimalFormula dom stage
- Language.Haskell.Tools.AST.Binds: [_noInlineDef] :: TopLevelPragma dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Binds: [_pragmaConlike] :: TopLevelPragma dom stage -> AnnMaybe ConlikeAnnot dom stage
- Language.Haskell.Tools.AST.Binds: [_pragmaFileName] :: TopLevelPragma dom stage -> AnnMaybe StringNode dom stage
- Language.Haskell.Tools.AST.Binds: [_pragmaLineNum] :: TopLevelPragma dom stage -> Ann LineNumber dom stage
- Language.Haskell.Tools.AST.Binds: [_pragmaMessage] :: TopLevelPragma dom stage -> Ann StringNode dom stage
- Language.Haskell.Tools.AST.Binds: [_pragmaObjects] :: TopLevelPragma dom stage -> AnnList Name dom stage
- Language.Haskell.Tools.AST.Binds: [_pragmaPhase] :: TopLevelPragma dom stage -> AnnMaybe PhaseControl dom stage
- Language.Haskell.Tools.AST.Binds: [_pragmaRule] :: TopLevelPragma dom stage -> AnnList Rule dom stage
- Language.Haskell.Tools.AST.Binds: [_rhsExpr] :: Rhs dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Binds: [_rhsGuards] :: Rhs dom stage -> AnnList GuardedRhs dom stage
- Language.Haskell.Tools.AST.Binds: [_ruleBounded] :: Rule dom stage -> AnnList TyVar dom stage
- Language.Haskell.Tools.AST.Binds: [_ruleLhs] :: Rule dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Binds: [_ruleName] :: Rule dom stage -> Ann StringNode dom stage
- Language.Haskell.Tools.AST.Binds: [_rulePhase] :: Rule dom stage -> AnnMaybe PhaseControl dom stage
- Language.Haskell.Tools.AST.Binds: [_ruleRhs] :: Rule dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Binds: [_specializeDef] :: TopLevelPragma dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Binds: [_specializeType] :: TopLevelPragma dom stage -> AnnList Type dom stage
- Language.Haskell.Tools.AST.Binds: [_tsName] :: TypeSignature dom stage -> AnnList Name dom stage
- Language.Haskell.Tools.AST.Binds: [_tsType] :: TypeSignature dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Binds: [_valBindLocals] :: ValueBind dom stage -> AnnMaybe LocalBinds dom stage
- Language.Haskell.Tools.AST.Binds: [_valBindPat] :: ValueBind dom stage -> Ann Pattern dom stage
- Language.Haskell.Tools.AST.Binds: [_valBindRhs] :: ValueBind dom stage -> Ann Rhs dom stage
- Language.Haskell.Tools.AST.Binds: data AnnotationSubject dom stage
- Language.Haskell.Tools.AST.Binds: data FixitySignature dom stage
- Language.Haskell.Tools.AST.Binds: data GuardedRhs dom stage
- Language.Haskell.Tools.AST.Binds: data LocalBind dom stage
- Language.Haskell.Tools.AST.Binds: data LocalBinds dom stage
- Language.Haskell.Tools.AST.Binds: data Match dom stage
- Language.Haskell.Tools.AST.Binds: data MatchLhs dom stage
- Language.Haskell.Tools.AST.Binds: data MinimalFormula dom stage
- Language.Haskell.Tools.AST.Binds: data Rhs dom stage
- Language.Haskell.Tools.AST.Binds: data RhsGuard dom stage
- Language.Haskell.Tools.AST.Binds: data Rule dom stage
- Language.Haskell.Tools.AST.Binds: data TopLevelPragma dom stage
- Language.Haskell.Tools.AST.Binds: data TypeSignature dom stage
- Language.Haskell.Tools.AST.Binds: data ValueBind dom stage
- Language.Haskell.Tools.AST.Decls: BidirectionalPatSyn :: Ann Pattern dom stage -> AnnMaybe PatSynWhere dom stage -> PatSynRhs dom stage
- Language.Haskell.Tools.AST.Decls: ClassBody :: AnnList ClassElement dom stage -> ClassBody dom stage
- Language.Haskell.Tools.AST.Decls: ClassDecl :: AnnMaybe Context dom stage -> Ann DeclHead dom stage -> AnnMaybe FunDeps dom stage -> AnnMaybe ClassBody dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: ClosedTypeFamilyDecl :: Ann DeclHead dom stage -> AnnMaybe KindConstraint dom stage -> AnnList TypeEqn dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: ClsDef :: Ann ValueBind dom stage -> ClassElement dom stage
- Language.Haskell.Tools.AST.Decls: ClsDefSig :: Ann Name dom stage -> Ann Type dom stage -> ClassElement dom stage
- Language.Haskell.Tools.AST.Decls: ClsMinimal :: Ann MinimalFormula dom stage -> ClassElement dom stage
- Language.Haskell.Tools.AST.Decls: ClsPatSig :: Ann PatternTypeSignature dom stage -> ClassElement dom stage
- Language.Haskell.Tools.AST.Decls: ClsSig :: Ann TypeSignature dom stage -> ClassElement dom stage
- Language.Haskell.Tools.AST.Decls: ClsTypeDef :: Ann DeclHead dom stage -> Ann Type dom stage -> ClassElement dom stage
- Language.Haskell.Tools.AST.Decls: ClsTypeFam :: Ann TypeFamily dom stage -> ClassElement dom stage
- Language.Haskell.Tools.AST.Decls: ConDecl :: Ann Name dom stage -> AnnList Type dom stage -> ConDecl dom stage
- Language.Haskell.Tools.AST.Decls: DHApp :: Ann DeclHead dom stage -> Ann TyVar dom stage -> DeclHead dom stage
- Language.Haskell.Tools.AST.Decls: DHInfix :: Ann TyVar dom stage -> Ann Operator dom stage -> Ann TyVar dom stage -> DeclHead dom stage
- Language.Haskell.Tools.AST.Decls: DHParen :: Ann DeclHead dom stage -> DeclHead dom stage
- Language.Haskell.Tools.AST.Decls: DataDecl :: Ann DataOrNewtypeKeyword dom stage -> AnnMaybe Context dom stage -> Ann DeclHead dom stage -> AnnList ConDecl dom stage -> AnnMaybe Deriving dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: DataFamily :: Ann DeclHead dom stage -> AnnMaybe KindConstraint dom stage -> TypeFamily dom stage
- Language.Haskell.Tools.AST.Decls: DataInstDecl :: Ann DataOrNewtypeKeyword dom stage -> Ann InstanceRule dom stage -> AnnList ConDecl dom stage -> AnnMaybe Deriving dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: DeclHead :: Ann Name dom stage -> DeclHead dom stage
- Language.Haskell.Tools.AST.Decls: DefaultDecl :: AnnList Type dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: DerivDecl :: AnnMaybe OverlapPragma dom stage -> Ann InstanceRule dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: DerivingOne :: Ann InstanceHead dom stage -> Deriving dom stage
- Language.Haskell.Tools.AST.Decls: Derivings :: AnnList InstanceHead dom stage -> Deriving dom stage
- Language.Haskell.Tools.AST.Decls: FieldDecl :: AnnList Name dom stage -> Ann Type dom stage -> FieldDecl dom stage
- Language.Haskell.Tools.AST.Decls: FixityDecl :: Ann FixitySignature dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: ForeignExport :: Ann CallConv dom stage -> Ann Name dom stage -> Ann Type dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: ForeignImport :: Ann CallConv dom stage -> AnnMaybe Safety dom stage -> Ann Name dom stage -> Ann Type dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: FunDep :: AnnList Name dom stage -> AnnList Name dom stage -> FunDep dom stage
- Language.Haskell.Tools.AST.Decls: FunDeps :: AnnList FunDep dom stage -> FunDeps dom stage
- Language.Haskell.Tools.AST.Decls: GDataDecl :: Ann DataOrNewtypeKeyword dom stage -> AnnMaybe Context dom stage -> Ann DeclHead dom stage -> AnnMaybe KindConstraint dom stage -> AnnList GadtConDecl dom stage -> AnnMaybe Deriving dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: GDataInstDecl :: Ann DataOrNewtypeKeyword dom stage -> Ann InstanceRule dom stage -> AnnMaybe KindConstraint dom stage -> AnnList GadtConDecl dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: GadtConDecl :: AnnList Name dom stage -> Ann GadtConType dom stage -> GadtConDecl dom stage
- Language.Haskell.Tools.AST.Decls: GadtNormalType :: Ann Type dom stage -> GadtConType dom stage
- Language.Haskell.Tools.AST.Decls: GadtRecordType :: AnnList FieldDecl dom stage -> Ann Type dom stage -> GadtConType dom stage
- Language.Haskell.Tools.AST.Decls: InfixConDecl :: Ann Type dom stage -> Ann Operator dom stage -> Ann Type dom stage -> ConDecl dom stage
- Language.Haskell.Tools.AST.Decls: InfixPatSyn :: Ann Name dom stage -> Ann Operator dom stage -> Ann Name dom stage -> PatSynLhs dom stage
- Language.Haskell.Tools.AST.Decls: InjectivityAnn :: Ann Name dom stage -> AnnList Name dom stage -> InjectivityAnn dom stage
- Language.Haskell.Tools.AST.Decls: InstBody :: AnnList InstBodyDecl dom stage -> InstBody dom stage
- Language.Haskell.Tools.AST.Decls: InstBodyDataDecl :: Ann DataOrNewtypeKeyword dom stage -> Ann InstanceRule dom stage -> AnnList ConDecl dom stage -> AnnMaybe Deriving dom stage -> InstBodyDecl dom stage
- Language.Haskell.Tools.AST.Decls: InstBodyGadtDataDecl :: Ann DataOrNewtypeKeyword dom stage -> Ann InstanceRule dom stage -> AnnMaybe KindConstraint dom stage -> AnnList GadtConDecl dom stage -> AnnMaybe Deriving dom stage -> InstBodyDecl dom stage
- Language.Haskell.Tools.AST.Decls: InstBodyNormalDecl :: Ann ValueBind dom stage -> InstBodyDecl dom stage
- Language.Haskell.Tools.AST.Decls: InstBodyPatSyn :: Ann PatternSynonym dom stage -> InstBodyDecl dom stage
- Language.Haskell.Tools.AST.Decls: InstBodyTypeDecl :: Ann TypeEqn dom stage -> InstBodyDecl dom stage
- Language.Haskell.Tools.AST.Decls: InstBodyTypeSig :: Ann TypeSignature dom stage -> InstBodyDecl dom stage
- Language.Haskell.Tools.AST.Decls: InstDecl :: AnnMaybe OverlapPragma dom stage -> Ann InstanceRule dom stage -> AnnMaybe InstBody dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: InstanceHeadApp :: Ann InstanceHead dom stage -> Ann Type dom stage -> InstanceHead dom stage
- Language.Haskell.Tools.AST.Decls: InstanceHeadCon :: Ann Name dom stage -> InstanceHead dom stage
- Language.Haskell.Tools.AST.Decls: InstanceHeadInfix :: Ann Type dom stage -> Ann Name dom stage -> InstanceHead dom stage
- Language.Haskell.Tools.AST.Decls: InstanceHeadParen :: Ann InstanceHead dom stage -> InstanceHead dom stage
- Language.Haskell.Tools.AST.Decls: InstanceParen :: Ann InstanceRule dom stage -> InstanceRule dom stage
- Language.Haskell.Tools.AST.Decls: InstanceRule :: AnnMaybe (AnnList TyVar) dom stage -> AnnMaybe Context dom stage -> Ann InstanceHead dom stage -> InstanceRule dom stage
- Language.Haskell.Tools.AST.Decls: NormalPatSyn :: Ann Name dom stage -> AnnList Name dom stage -> PatSynLhs dom stage
- Language.Haskell.Tools.AST.Decls: OneDirectionalPatSyn :: Ann Pattern dom stage -> PatSynRhs dom stage
- Language.Haskell.Tools.AST.Decls: PatSynWhere :: AnnList Match dom stage -> PatSynWhere dom stage
- Language.Haskell.Tools.AST.Decls: PatTypeSigDecl :: Ann PatternTypeSignature dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: PatternSynonym :: Ann PatSynLhs dom stage -> Ann PatSynRhs dom stage -> PatternSynonym dom stage
- Language.Haskell.Tools.AST.Decls: PatternSynonymDecl :: Ann PatternSynonym dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: PatternTypeSignature :: Ann Name dom stage -> Ann Type dom stage -> PatternTypeSignature dom stage
- Language.Haskell.Tools.AST.Decls: PragmaDecl :: Ann TopLevelPragma dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: RecordDecl :: Ann Name dom stage -> AnnList FieldDecl dom stage -> ConDecl dom stage
- Language.Haskell.Tools.AST.Decls: RecordPatSyn :: Ann Name dom stage -> AnnList Name dom stage -> PatSynLhs dom stage
- Language.Haskell.Tools.AST.Decls: RoleDecl :: Ann QualifiedName dom stage -> AnnList Role dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: SpecializeInstance :: Ann Type dom stage -> InstBodyDecl dom stage
- Language.Haskell.Tools.AST.Decls: SpliceDecl :: Ann Splice dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: TypeDecl :: Ann DeclHead dom stage -> Ann Type dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: TypeEqn :: Ann Type dom stage -> Ann Type dom stage -> TypeEqn dom stage
- Language.Haskell.Tools.AST.Decls: TypeFamily :: Ann DeclHead dom stage -> AnnMaybe TypeFamilySpec dom stage -> TypeFamily dom stage
- Language.Haskell.Tools.AST.Decls: TypeFamilyDecl :: Ann TypeFamily dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: TypeFamilyInjectivity :: Ann InjectivityAnn dom stage -> TypeFamilySpec dom stage
- Language.Haskell.Tools.AST.Decls: TypeFamilyKind :: Ann KindConstraint dom stage -> TypeFamilySpec dom stage
- Language.Haskell.Tools.AST.Decls: TypeInstDecl :: Ann InstanceRule dom stage -> Ann Type dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: TypeSigDecl :: Ann TypeSignature dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: ValueBinding :: Ann ValueBind dom stage -> Decl dom stage
- Language.Haskell.Tools.AST.Decls: [_allDerived] :: Deriving dom stage -> AnnList InstanceHead dom stage
- Language.Haskell.Tools.AST.Decls: [_cbElements] :: ClassBody dom stage -> AnnList ClassElement dom stage
- Language.Haskell.Tools.AST.Decls: [_ceBind] :: ClassElement dom stage -> Ann ValueBind dom stage
- Language.Haskell.Tools.AST.Decls: [_ceHead] :: ClassElement dom stage -> Ann DeclHead dom stage
- Language.Haskell.Tools.AST.Decls: [_ceKind] :: ClassElement dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Decls: [_ceName] :: ClassElement dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Decls: [_cePatSig] :: ClassElement dom stage -> Ann PatternTypeSignature dom stage
- Language.Haskell.Tools.AST.Decls: [_ceTypeFam] :: ClassElement dom stage -> Ann TypeFamily dom stage
- Language.Haskell.Tools.AST.Decls: [_ceTypeSig] :: ClassElement dom stage -> Ann TypeSignature dom stage
- Language.Haskell.Tools.AST.Decls: [_ceType] :: ClassElement dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Decls: [_conDeclArgs] :: ConDecl dom stage -> AnnList Type dom stage
- Language.Haskell.Tools.AST.Decls: [_conDeclFields] :: ConDecl dom stage -> AnnList FieldDecl dom stage
- Language.Haskell.Tools.AST.Decls: [_conDeclLhs] :: ConDecl dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Decls: [_conDeclName] :: ConDecl dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Decls: [_conDeclOp] :: ConDecl dom stage -> Ann Operator dom stage
- Language.Haskell.Tools.AST.Decls: [_conDeclRhs] :: ConDecl dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Decls: [_declAssignedType] :: Decl dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Decls: [_declBody] :: Decl dom stage -> AnnMaybe ClassBody dom stage
- Language.Haskell.Tools.AST.Decls: [_declCallConv] :: Decl dom stage -> Ann CallConv dom stage
- Language.Haskell.Tools.AST.Decls: [_declCons] :: Decl dom stage -> AnnList ConDecl dom stage
- Language.Haskell.Tools.AST.Decls: [_declCtx] :: Decl dom stage -> AnnMaybe Context dom stage
- Language.Haskell.Tools.AST.Decls: [_declDecl] :: Decl dom stage -> AnnList TypeEqn dom stage
- Language.Haskell.Tools.AST.Decls: [_declDeriving] :: Decl dom stage -> AnnMaybe Deriving dom stage
- Language.Haskell.Tools.AST.Decls: [_declFixity] :: Decl dom stage -> Ann FixitySignature dom stage
- Language.Haskell.Tools.AST.Decls: [_declFunDeps] :: Decl dom stage -> AnnMaybe FunDeps dom stage
- Language.Haskell.Tools.AST.Decls: [_declGadt] :: Decl dom stage -> AnnList GadtConDecl dom stage
- Language.Haskell.Tools.AST.Decls: [_declHead] :: Decl dom stage -> Ann DeclHead dom stage
- Language.Haskell.Tools.AST.Decls: [_declInstDecl] :: Decl dom stage -> AnnMaybe InstBody dom stage
- Language.Haskell.Tools.AST.Decls: [_declInstRule] :: Decl dom stage -> Ann InstanceRule dom stage
- Language.Haskell.Tools.AST.Decls: [_declInstance] :: Decl dom stage -> Ann InstanceRule dom stage
- Language.Haskell.Tools.AST.Decls: [_declKind] :: Decl dom stage -> AnnMaybe KindConstraint dom stage
- Language.Haskell.Tools.AST.Decls: [_declName] :: Decl dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Decls: [_declNewtype] :: Decl dom stage -> Ann DataOrNewtypeKeyword dom stage
- Language.Haskell.Tools.AST.Decls: [_declOverlap] :: Decl dom stage -> AnnMaybe OverlapPragma dom stage
- Language.Haskell.Tools.AST.Decls: [_declPatSyn] :: Decl dom stage -> Ann PatternSynonym dom stage
- Language.Haskell.Tools.AST.Decls: [_declPatTypeSig] :: Decl dom stage -> Ann PatternTypeSignature dom stage
- Language.Haskell.Tools.AST.Decls: [_declPragma] :: Decl dom stage -> Ann TopLevelPragma dom stage
- Language.Haskell.Tools.AST.Decls: [_declRoleType] :: Decl dom stage -> Ann QualifiedName dom stage
- Language.Haskell.Tools.AST.Decls: [_declRoles] :: Decl dom stage -> AnnList Role dom stage
- Language.Haskell.Tools.AST.Decls: [_declSafety] :: Decl dom stage -> AnnMaybe Safety dom stage
- Language.Haskell.Tools.AST.Decls: [_declSplice] :: Decl dom stage -> Ann Splice dom stage
- Language.Haskell.Tools.AST.Decls: [_declTypeFamily] :: Decl dom stage -> Ann TypeFamily dom stage
- Language.Haskell.Tools.AST.Decls: [_declTypeSig] :: Decl dom stage -> Ann TypeSignature dom stage
- Language.Haskell.Tools.AST.Decls: [_declType] :: Decl dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Decls: [_declTypes] :: Decl dom stage -> AnnList Type dom stage
- Language.Haskell.Tools.AST.Decls: [_declValBind] :: Decl dom stage -> Ann ValueBind dom stage
- Language.Haskell.Tools.AST.Decls: [_dhAppFun] :: DeclHead dom stage -> Ann DeclHead dom stage
- Language.Haskell.Tools.AST.Decls: [_dhAppOperand] :: DeclHead dom stage -> Ann TyVar dom stage
- Language.Haskell.Tools.AST.Decls: [_dhBody] :: DeclHead dom stage -> Ann DeclHead dom stage
- Language.Haskell.Tools.AST.Decls: [_dhLeft] :: DeclHead dom stage -> Ann TyVar dom stage
- Language.Haskell.Tools.AST.Decls: [_dhName] :: DeclHead dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Decls: [_dhOperator] :: DeclHead dom stage -> Ann Operator dom stage
- Language.Haskell.Tools.AST.Decls: [_dhRight] :: DeclHead dom stage -> Ann TyVar dom stage
- Language.Haskell.Tools.AST.Decls: [_fieldNames] :: FieldDecl dom stage -> AnnList Name dom stage
- Language.Haskell.Tools.AST.Decls: [_fieldType] :: FieldDecl dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Decls: [_funDepLhs] :: FunDep dom stage -> AnnList Name dom stage
- Language.Haskell.Tools.AST.Decls: [_funDepRhs] :: FunDep dom stage -> AnnList Name dom stage
- Language.Haskell.Tools.AST.Decls: [_funDeps] :: FunDeps dom stage -> AnnList FunDep dom stage
- Language.Haskell.Tools.AST.Decls: [_gadtConNames] :: GadtConDecl dom stage -> AnnList Name dom stage
- Language.Haskell.Tools.AST.Decls: [_gadtConNormalType] :: GadtConType dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Decls: [_gadtConRecordFields] :: GadtConType dom stage -> AnnList FieldDecl dom stage
- Language.Haskell.Tools.AST.Decls: [_gadtConResultType] :: GadtConType dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Decls: [_gadtConType] :: GadtConDecl dom stage -> Ann GadtConType dom stage
- Language.Haskell.Tools.AST.Decls: [_ihConName] :: InstanceHead dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Decls: [_ihFun] :: InstanceHead dom stage -> Ann InstanceHead dom stage
- Language.Haskell.Tools.AST.Decls: [_ihHead] :: InstanceHead dom stage -> Ann InstanceHead dom stage
- Language.Haskell.Tools.AST.Decls: [_ihLeftOp] :: InstanceHead dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Decls: [_ihOperator] :: InstanceHead dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Decls: [_ihType] :: InstanceHead dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Decls: [_injAnnDeps] :: InjectivityAnn dom stage -> AnnList Name dom stage
- Language.Haskell.Tools.AST.Decls: [_injAnnRes] :: InjectivityAnn dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Decls: [_instBodyDataCons] :: InstBodyDecl dom stage -> AnnList ConDecl dom stage
- Language.Haskell.Tools.AST.Decls: [_instBodyDataKind] :: InstBodyDecl dom stage -> AnnMaybe KindConstraint dom stage
- Language.Haskell.Tools.AST.Decls: [_instBodyDataNew] :: InstBodyDecl dom stage -> Ann DataOrNewtypeKeyword dom stage
- Language.Haskell.Tools.AST.Decls: [_instBodyDeclFunbind] :: InstBodyDecl dom stage -> Ann ValueBind dom stage
- Language.Haskell.Tools.AST.Decls: [_instBodyDecls] :: InstBody dom stage -> AnnList InstBodyDecl dom stage
- Language.Haskell.Tools.AST.Decls: [_instBodyDerivings] :: InstBodyDecl dom stage -> AnnMaybe Deriving dom stage
- Language.Haskell.Tools.AST.Decls: [_instBodyGadtCons] :: InstBodyDecl dom stage -> AnnList GadtConDecl dom stage
- Language.Haskell.Tools.AST.Decls: [_instBodyLhsType] :: InstBodyDecl dom stage -> Ann InstanceRule dom stage
- Language.Haskell.Tools.AST.Decls: [_instBodyPatSyn] :: InstBodyDecl dom stage -> Ann PatternSynonym dom stage
- Language.Haskell.Tools.AST.Decls: [_instBodyTypeEqn] :: InstBodyDecl dom stage -> Ann TypeEqn dom stage
- Language.Haskell.Tools.AST.Decls: [_instBodyTypeSig] :: InstBodyDecl dom stage -> Ann TypeSignature dom stage
- Language.Haskell.Tools.AST.Decls: [_irCtx] :: InstanceRule dom stage -> AnnMaybe Context dom stage
- Language.Haskell.Tools.AST.Decls: [_irHead] :: InstanceRule dom stage -> Ann InstanceHead dom stage
- Language.Haskell.Tools.AST.Decls: [_irRule] :: InstanceRule dom stage -> Ann InstanceRule dom stage
- Language.Haskell.Tools.AST.Decls: [_irVars] :: InstanceRule dom stage -> AnnMaybe (AnnList TyVar) dom stage
- Language.Haskell.Tools.AST.Decls: [_oneDerived] :: Deriving dom stage -> Ann InstanceHead dom stage
- Language.Haskell.Tools.AST.Decls: [_patArgs] :: PatSynLhs dom stage -> AnnList Name dom stage
- Language.Haskell.Tools.AST.Decls: [_patLhs] :: PatternSynonym dom stage -> Ann PatSynLhs dom stage
- Language.Haskell.Tools.AST.Decls: [_patName] :: PatSynLhs dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Decls: [_patOpposite] :: PatSynWhere dom stage -> AnnList Match dom stage
- Language.Haskell.Tools.AST.Decls: [_patRhsOpposite] :: PatSynRhs dom stage -> AnnMaybe PatSynWhere dom stage
- Language.Haskell.Tools.AST.Decls: [_patRhsPat] :: PatSynRhs dom stage -> Ann Pattern dom stage
- Language.Haskell.Tools.AST.Decls: [_patRhs] :: PatternSynonym dom stage -> Ann PatSynRhs dom stage
- Language.Haskell.Tools.AST.Decls: [_patSigName] :: PatternTypeSignature dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Decls: [_patSigType] :: PatternTypeSignature dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Decls: [_patSynLhs] :: PatSynLhs dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Decls: [_patSynOp] :: PatSynLhs dom stage -> Ann Operator dom stage
- Language.Haskell.Tools.AST.Decls: [_patSynRhs] :: PatSynLhs dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Decls: [_pragmaFormula] :: ClassElement dom stage -> Ann MinimalFormula dom stage
- Language.Haskell.Tools.AST.Decls: [_specializeInstanceType] :: InstBodyDecl dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Decls: [_teLhs] :: TypeEqn dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Decls: [_teRhs] :: TypeEqn dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Decls: [_tfHead] :: TypeFamily dom stage -> Ann DeclHead dom stage
- Language.Haskell.Tools.AST.Decls: [_tfInjectivity] :: TypeFamilySpec dom stage -> Ann InjectivityAnn dom stage
- Language.Haskell.Tools.AST.Decls: [_tfKind] :: TypeFamily dom stage -> AnnMaybe KindConstraint dom stage
- Language.Haskell.Tools.AST.Decls: [_tfSpecKind] :: TypeFamilySpec dom stage -> Ann KindConstraint dom stage
- Language.Haskell.Tools.AST.Decls: [_tfSpec] :: TypeFamily dom stage -> AnnMaybe TypeFamilySpec dom stage
- Language.Haskell.Tools.AST.Decls: data ClassBody dom stage
- Language.Haskell.Tools.AST.Decls: data ClassElement dom stage
- Language.Haskell.Tools.AST.Decls: data ConDecl dom stage
- Language.Haskell.Tools.AST.Decls: data Decl dom stage
- Language.Haskell.Tools.AST.Decls: data DeclHead dom stage
- Language.Haskell.Tools.AST.Decls: data Deriving dom stage
- Language.Haskell.Tools.AST.Decls: data FieldDecl dom stage
- Language.Haskell.Tools.AST.Decls: data FunDep dom stage
- Language.Haskell.Tools.AST.Decls: data FunDeps dom stage
- Language.Haskell.Tools.AST.Decls: data GadtConDecl dom stage
- Language.Haskell.Tools.AST.Decls: data GadtConType dom stage
- Language.Haskell.Tools.AST.Decls: data InjectivityAnn dom stage
- Language.Haskell.Tools.AST.Decls: data InstBody dom stage
- Language.Haskell.Tools.AST.Decls: data InstBodyDecl dom stage
- Language.Haskell.Tools.AST.Decls: data InstanceHead dom stage
- Language.Haskell.Tools.AST.Decls: data InstanceRule dom stage
- Language.Haskell.Tools.AST.Decls: data PatSynLhs dom stage
- Language.Haskell.Tools.AST.Decls: data PatSynRhs dom stage
- Language.Haskell.Tools.AST.Decls: data PatSynWhere dom stage
- Language.Haskell.Tools.AST.Decls: data PatternSynonym dom stage
- Language.Haskell.Tools.AST.Decls: data PatternTypeSignature dom stage
- Language.Haskell.Tools.AST.Decls: data TypeEqn dom stage
- Language.Haskell.Tools.AST.Decls: data TypeFamily dom stage
- Language.Haskell.Tools.AST.Decls: data TypeFamilySpec dom stage
- Language.Haskell.Tools.AST.Exprs: Alt :: Ann Pattern dom stage -> Ann (CaseRhs' expr) dom stage -> AnnMaybe LocalBinds dom stage -> Alt' expr dom stage
- Language.Haskell.Tools.AST.Exprs: App :: Ann Expr dom stage -> Ann Expr dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: AppCmd :: Ann Cmd dom stage -> Ann Expr dom stage -> Cmd dom stage
- Language.Haskell.Tools.AST.Exprs: ArrowApp :: Ann Expr dom stage -> Ann ArrowAppl dom stage -> Ann Expr dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: ArrowAppCmd :: Ann Expr dom stage -> Ann ArrowAppl dom stage -> Ann Expr dom stage -> Cmd dom stage
- Language.Haskell.Tools.AST.Exprs: ArrowFormCmd :: Ann Expr dom stage -> AnnList Cmd dom stage -> Cmd dom stage
- Language.Haskell.Tools.AST.Exprs: BracketExpr :: Ann Bracket dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: Case :: Ann Expr dom stage -> AnnList Alt dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: CaseCmd :: Ann Expr dom stage -> AnnList CmdAlt dom stage -> Cmd dom stage
- Language.Haskell.Tools.AST.Exprs: CorePragma :: Ann StringNode dom stage -> ExprPragma dom stage
- Language.Haskell.Tools.AST.Exprs: Do :: Ann DoKind dom stage -> AnnList Stmt dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: DoCmd :: AnnList (Stmt' Cmd) dom stage -> Cmd dom stage
- Language.Haskell.Tools.AST.Exprs: Enum :: Ann Expr dom stage -> AnnMaybe Expr dom stage -> AnnMaybe Expr dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: ExplTypeApp :: Ann Expr dom stage -> Ann Type dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: ExprPragma :: Ann ExprPragma dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: FieldPun :: Ann Name dom stage -> FieldUpdate dom stage
- Language.Haskell.Tools.AST.Exprs: FieldWildcard :: Ann FieldWildcard dom stage -> FieldUpdate dom stage
- Language.Haskell.Tools.AST.Exprs: FldWildcard :: FieldWildcard dom stage
- Language.Haskell.Tools.AST.Exprs: GeneratedPragma :: Ann SourceRange dom stage -> ExprPragma dom stage
- Language.Haskell.Tools.AST.Exprs: GuardedCaseRhs :: AnnList RhsGuard dom stage -> Ann expr dom stage -> GuardedCaseRhs' expr dom stage
- Language.Haskell.Tools.AST.Exprs: GuardedCaseRhss :: AnnList (GuardedCaseRhs' expr) dom stage -> CaseRhs' expr dom stage
- Language.Haskell.Tools.AST.Exprs: If :: Ann Expr dom stage -> Ann Expr dom stage -> Ann Expr dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: IfCmd :: Ann Expr dom stage -> Ann Cmd dom stage -> Ann Cmd dom stage -> Cmd dom stage
- Language.Haskell.Tools.AST.Exprs: InfixApp :: Ann Expr dom stage -> Ann Operator dom stage -> Ann Expr dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: InfixCmd :: Ann Cmd dom stage -> Ann Name dom stage -> Ann Cmd dom stage -> Cmd dom stage
- Language.Haskell.Tools.AST.Exprs: LamCase :: AnnList Alt dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: Lambda :: AnnList Pattern dom stage -> Ann Expr dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: LambdaCmd :: AnnList Pattern dom stage -> Ann Cmd dom stage -> Cmd dom stage
- Language.Haskell.Tools.AST.Exprs: LeftSection :: Ann Expr dom stage -> Ann Operator dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: Let :: AnnList LocalBind dom stage -> Ann Expr dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: LetCmd :: AnnList LocalBind dom stage -> Ann Cmd dom stage -> Cmd dom stage
- Language.Haskell.Tools.AST.Exprs: List :: AnnList Expr dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: ListComp :: Ann Expr dom stage -> AnnList ListCompBody dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: Lit :: Ann Literal dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: Missing :: TupSecElem dom stage
- Language.Haskell.Tools.AST.Exprs: MultiIf :: AnnList GuardedCaseRhs dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: NormalFieldUpdate :: Ann Name dom stage -> Ann Expr dom stage -> FieldUpdate dom stage
- Language.Haskell.Tools.AST.Exprs: Number :: Integer -> Number dom stage
- Language.Haskell.Tools.AST.Exprs: ParArray :: AnnList Expr dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: ParArrayComp :: Ann Expr dom stage -> AnnList ListCompBody dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: ParArrayEnum :: Ann Expr dom stage -> AnnMaybe Expr dom stage -> Ann Expr dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: Paren :: Ann Expr dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: ParenCmd :: Ann Cmd dom stage -> Cmd dom stage
- Language.Haskell.Tools.AST.Exprs: PrefixApp :: Ann Operator dom stage -> Ann Expr dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: Present :: Ann Expr dom stage -> TupSecElem dom stage
- Language.Haskell.Tools.AST.Exprs: Proc :: Ann Pattern dom stage -> Ann Cmd dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: QuasiQuoteExpr :: Ann QuasiQuote dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: RecCon :: Ann Name dom stage -> AnnList FieldUpdate dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: RecUpdate :: Ann Expr dom stage -> AnnList FieldUpdate dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: RightSection :: Ann Operator dom stage -> Ann Expr dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: SccPragma :: Ann StringNode dom stage -> ExprPragma dom stage
- Language.Haskell.Tools.AST.Exprs: SourceRange :: Ann StringNode dom stage -> Ann Number dom stage -> Ann Number dom stage -> Ann Number dom stage -> Ann Number dom stage -> SourceRange dom stage
- Language.Haskell.Tools.AST.Exprs: Splice :: Ann Splice dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: StaticPtr :: Ann Expr dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: Tuple :: AnnList Expr dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: TupleSection :: AnnList TupSecElem dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: TypeQuote :: Ann Name dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: TypeSig :: Ann Expr dom stage -> Ann Type dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: UnboxedTupSec :: AnnList TupSecElem dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: UnboxedTuple :: AnnList Expr dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: UnguardedCaseRhs :: Ann expr dom stage -> CaseRhs' expr dom stage
- Language.Haskell.Tools.AST.Exprs: Var :: Ann Name dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: VarQuote :: Ann Name dom stage -> Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_altBinds] :: Alt' expr dom stage -> AnnMaybe LocalBinds dom stage
- Language.Haskell.Tools.AST.Exprs: [_altPattern] :: Alt' expr dom stage -> Ann Pattern dom stage
- Language.Haskell.Tools.AST.Exprs: [_altRhs] :: Alt' expr dom stage -> Ann (CaseRhs' expr) dom stage
- Language.Haskell.Tools.AST.Exprs: [_arrowAppl] :: Expr dom stage -> Ann ArrowAppl dom stage
- Language.Haskell.Tools.AST.Exprs: [_bracket] :: Expr dom stage -> Ann Bracket dom stage
- Language.Haskell.Tools.AST.Exprs: [_caseGuardExpr] :: GuardedCaseRhs' expr dom stage -> Ann expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_caseGuardStmts] :: GuardedCaseRhs' expr dom stage -> AnnList RhsGuard dom stage
- Language.Haskell.Tools.AST.Exprs: [_cmdAlts] :: Cmd dom stage -> AnnList CmdAlt dom stage
- Language.Haskell.Tools.AST.Exprs: [_cmdApplied] :: Cmd dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_cmdArrowOp] :: Cmd dom stage -> Ann ArrowAppl dom stage
- Language.Haskell.Tools.AST.Exprs: [_cmdBindings] :: Cmd dom stage -> AnnList Pattern dom stage
- Language.Haskell.Tools.AST.Exprs: [_cmdBinds] :: Cmd dom stage -> AnnList LocalBind dom stage
- Language.Haskell.Tools.AST.Exprs: [_cmdElse] :: Cmd dom stage -> Ann Cmd dom stage
- Language.Haskell.Tools.AST.Exprs: [_cmdExpr] :: Cmd dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_cmdInnerCmd] :: Cmd dom stage -> Ann Cmd dom stage
- Language.Haskell.Tools.AST.Exprs: [_cmdInnerCmds] :: Cmd dom stage -> AnnList Cmd dom stage
- Language.Haskell.Tools.AST.Exprs: [_cmdInner] :: Cmd dom stage -> Ann Cmd dom stage
- Language.Haskell.Tools.AST.Exprs: [_cmdLeftCmd] :: Cmd dom stage -> Ann Cmd dom stage
- Language.Haskell.Tools.AST.Exprs: [_cmdLhs] :: Cmd dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_cmdOperator] :: Cmd dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Exprs: [_cmdRhs] :: Cmd dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_cmdRightCmd] :: Cmd dom stage -> Ann Cmd dom stage
- Language.Haskell.Tools.AST.Exprs: [_cmdStmts] :: Cmd dom stage -> AnnList (Stmt' Cmd) dom stage
- Language.Haskell.Tools.AST.Exprs: [_cmdThen] :: Cmd dom stage -> Ann Cmd dom stage
- Language.Haskell.Tools.AST.Exprs: [_compBody] :: Expr dom stage -> AnnList ListCompBody dom stage
- Language.Haskell.Tools.AST.Exprs: [_compExpr] :: Expr dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_doKind] :: Expr dom stage -> Ann DoKind dom stage
- Language.Haskell.Tools.AST.Exprs: [_enumFrom] :: Expr dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_enumThen] :: Expr dom stage -> AnnMaybe Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_enumToFix] :: Expr dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_enumTo] :: Expr dom stage -> AnnMaybe Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprAlts] :: Expr dom stage -> AnnList Alt dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprArg] :: Expr dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprBindings] :: Expr dom stage -> AnnList Pattern dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprCase] :: Expr dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprCond] :: Expr dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprElse] :: Expr dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprFunBind] :: Expr dom stage -> AnnList LocalBind dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprFun] :: Expr dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprIfAlts] :: Expr dom stage -> AnnList GuardedCaseRhs dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprInner] :: Expr dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprLhs] :: Expr dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprLit] :: Expr dom stage -> Ann Literal dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprName] :: Expr dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprOperator] :: Expr dom stage -> Ann Operator dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprPragma] :: Expr dom stage -> Ann ExprPragma dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprQQ] :: Expr dom stage -> Ann QuasiQuote dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprRecFields] :: Expr dom stage -> AnnList FieldUpdate dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprRecName] :: Expr dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprRhs] :: Expr dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprSig] :: Expr dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprStmts] :: Expr dom stage -> AnnList Stmt dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprThen] :: Expr dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_exprType] :: Expr dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Exprs: [_fieldName] :: FieldUpdate dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Exprs: [_fieldUpdateName] :: FieldUpdate dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Exprs: [_fieldValue] :: FieldUpdate dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_fieldWildcard] :: FieldUpdate dom stage -> Ann FieldWildcard dom stage
- Language.Haskell.Tools.AST.Exprs: [_innerExpr] :: Expr dom stage -> Ann Splice dom stage
- Language.Haskell.Tools.AST.Exprs: [_listElems] :: Expr dom stage -> AnnList Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_numberInteger] :: Number dom stage -> Integer
- Language.Haskell.Tools.AST.Exprs: [_pragmaSrcRange] :: ExprPragma dom stage -> Ann SourceRange dom stage
- Language.Haskell.Tools.AST.Exprs: [_pragmaStr] :: ExprPragma dom stage -> Ann StringNode dom stage
- Language.Haskell.Tools.AST.Exprs: [_procExpr] :: Expr dom stage -> Ann Cmd dom stage
- Language.Haskell.Tools.AST.Exprs: [_procPattern] :: Expr dom stage -> Ann Pattern dom stage
- Language.Haskell.Tools.AST.Exprs: [_quotedName] :: Expr dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Exprs: [_rhsCaseExpr] :: CaseRhs' expr dom stage -> Ann expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_rhsCaseGuards] :: CaseRhs' expr dom stage -> AnnList (GuardedCaseRhs' expr) dom stage
- Language.Haskell.Tools.AST.Exprs: [_srFileName] :: SourceRange dom stage -> Ann StringNode dom stage
- Language.Haskell.Tools.AST.Exprs: [_srFromCol] :: SourceRange dom stage -> Ann Number dom stage
- Language.Haskell.Tools.AST.Exprs: [_srFromLine] :: SourceRange dom stage -> Ann Number dom stage
- Language.Haskell.Tools.AST.Exprs: [_srToCol] :: SourceRange dom stage -> Ann Number dom stage
- Language.Haskell.Tools.AST.Exprs: [_srToLine] :: SourceRange dom stage -> Ann Number dom stage
- Language.Haskell.Tools.AST.Exprs: [_tupSecExpr] :: TupSecElem dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_tupleElems] :: Expr dom stage -> AnnList Expr dom stage
- Language.Haskell.Tools.AST.Exprs: [_tupleSectionElems] :: Expr dom stage -> AnnList TupSecElem dom stage
- Language.Haskell.Tools.AST.Exprs: data Alt' expr dom stage
- Language.Haskell.Tools.AST.Exprs: data CaseRhs' expr dom stage
- Language.Haskell.Tools.AST.Exprs: data Cmd dom stage
- Language.Haskell.Tools.AST.Exprs: data Expr dom stage
- Language.Haskell.Tools.AST.Exprs: data ExprPragma dom stage
- Language.Haskell.Tools.AST.Exprs: data FieldUpdate dom stage
- Language.Haskell.Tools.AST.Exprs: data FieldWildcard dom stage
- Language.Haskell.Tools.AST.Exprs: data GuardedCaseRhs' expr dom stage
- Language.Haskell.Tools.AST.Exprs: data Number dom stage
- Language.Haskell.Tools.AST.Exprs: data SourceRange dom stage
- Language.Haskell.Tools.AST.Exprs: data TupSecElem dom stage
- Language.Haskell.Tools.AST.Exprs: type Alt = Alt' Expr
- Language.Haskell.Tools.AST.Exprs: type CaseRhs = CaseRhs' Expr
- Language.Haskell.Tools.AST.Exprs: type CmdAlt = Alt' Cmd
- Language.Haskell.Tools.AST.Exprs: type CmdCaseRhs = CaseRhs' Cmd
- Language.Haskell.Tools.AST.Exprs: type CmdGuardedCaseRhs = GuardedCaseRhs' Cmd
- Language.Haskell.Tools.AST.Exprs: type GuardedCaseRhs = GuardedCaseRhs' Expr
- Language.Haskell.Tools.AST.Helpers: bindName :: (BindingElem d, SemanticInfo dom QualifiedName ~ k) => Simple Traversal (d dom stage) k
- Language.Haskell.Tools.AST.Helpers: class BindingElem d
- Language.Haskell.Tools.AST.Helpers: createBinding :: BindingElem d => Ann ValueBind dom stage -> d dom stage
- Language.Haskell.Tools.AST.Helpers: createTypeSig :: BindingElem d => Ann TypeSignature dom stage -> d dom stage
- Language.Haskell.Tools.AST.Helpers: dhNames :: (SemanticInfo dom QualifiedName ~ k) => Simple Traversal (Ann DeclHead dom stage) k
- Language.Haskell.Tools.AST.Helpers: getNode :: (Biplate (Ann node dom stage) (Ann inner dom stage), SourceInfo stage) => RealSrcSpan -> Ann node dom stage -> Ann inner dom stage
- Language.Haskell.Tools.AST.Helpers: getValBindInList :: (BindingElem d, SourceInfo stage) => RealSrcSpan -> AnnList d dom stage -> Maybe (Ann ValueBind dom stage)
- Language.Haskell.Tools.AST.Helpers: hasRange :: SourceInfo stage => RealSrcSpan -> Ann inner dom stage -> Bool
- Language.Haskell.Tools.AST.Helpers: importExacts :: Simple Traversal (ImportDecl dom stage) (IESpec dom stage)
- Language.Haskell.Tools.AST.Helpers: importHidings :: Simple Traversal (ImportDecl dom stage) (IESpec dom stage)
- Language.Haskell.Tools.AST.Helpers: importIsHiding :: ImportDecl dom stage -> Bool
- Language.Haskell.Tools.AST.Helpers: importQualifiers :: ImportDecl dom stage -> [[String]]
- Language.Haskell.Tools.AST.Helpers: instance Language.Haskell.Tools.AST.Helpers.BindingElem Language.Haskell.Tools.AST.Binds.LocalBind
- Language.Haskell.Tools.AST.Helpers: instance Language.Haskell.Tools.AST.Helpers.BindingElem Language.Haskell.Tools.AST.Decls.Decl
- Language.Haskell.Tools.AST.Helpers: isBinding :: BindingElem d => d dom stage -> Bool
- Language.Haskell.Tools.AST.Helpers: isTypeSig :: BindingElem d => d dom stage -> Bool
- Language.Haskell.Tools.AST.Helpers: nameElements :: QualifiedName dom stage -> [String]
- Language.Haskell.Tools.AST.Helpers: nameQualifier :: QualifiedName dom stage -> [String]
- Language.Haskell.Tools.AST.Helpers: nameString :: QualifiedName dom stage -> String
- Language.Haskell.Tools.AST.Helpers: ordByOccurrence :: QualifiedName dom stage -> QualifiedName dom stage -> Ordering
- Language.Haskell.Tools.AST.Helpers: sigBind :: BindingElem d => Simple Partial (d dom stage) (Ann TypeSignature dom stage)
- Language.Haskell.Tools.AST.Helpers: valBind :: BindingElem d => Simple Partial (d dom stage) (Ann ValueBind dom stage)
- Language.Haskell.Tools.AST.Helpers: valBindsInList :: BindingElem d => Simple Traversal (AnnList d dom stage) (Ann ValueBind dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Base.ArrowAppl dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Base.Assoc dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Base.CallConv dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Base.ConlikeAnnot dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Base.DataOrNewtypeKeyword dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Base.DoKind dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Base.LineNumber dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Base.ModuleName dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Base.Name dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Base.Operator dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Base.OverlapPragma dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Base.PhaseControl dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Base.PhaseInvert dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Base.PhaseNumber dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Base.Precedence dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Base.QualifiedName dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Base.Role dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Base.Safety dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Base.StringNode dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Base.TypeKeyword dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Base.UnqualName dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Binds.AnnotationSubject dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Binds.FixitySignature dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Binds.GuardedRhs dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Binds.LocalBind dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Binds.LocalBinds dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Binds.Match dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Binds.MatchLhs dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Binds.MinimalFormula dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Binds.Rhs dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Binds.RhsGuard dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Binds.Rule dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Binds.TopLevelPragma dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Binds.TypeSignature dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Binds.ValueBind dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.ClassBody dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.ClassElement dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.ConDecl dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.Decl dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.DeclHead dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.Deriving dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.FieldDecl dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.FunDep dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.FunDeps dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.GadtConDecl dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.GadtConType dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.InjectivityAnn dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.InstBody dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.InstBodyDecl dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.InstanceHead dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.InstanceRule dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.PatSynLhs dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.PatSynRhs dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.PatSynWhere dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.PatternSynonym dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.PatternTypeSignature dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.TypeEqn dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.TypeFamily dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Decls.TypeFamilySpec dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Exprs.Cmd dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Exprs.Expr dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Exprs.ExprPragma dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Exprs.FieldUpdate dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Exprs.FieldWildcard dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Exprs.Number dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Exprs.SourceRange dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Exprs.TupSecElem dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Kinds.Kind dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Kinds.KindConstraint dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Literals.Literal dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Modules.ExportSpec dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Modules.ExportSpecList dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Modules.FilePragma dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Modules.IESpec dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Modules.ImportDecl dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Modules.ImportQualified dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Modules.ImportRenaming dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Modules.ImportSafe dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Modules.ImportSource dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Modules.ImportSpec dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Modules.LanguageExtension dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Modules.Module dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Modules.ModuleHead dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Modules.ModulePragma dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Modules.SubSpec dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Modules.TypeNamespace dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Patterns.Pattern dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Patterns.PatternField dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Stmts.CompStmt dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Stmts.ListCompBody dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.TH.Bracket dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.TH.QQString dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.TH.QuasiQuote dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.TH.Splice dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Types.Assertion dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Types.Context dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Types.TyVar dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => Data.Data.Data (Language.Haskell.Tools.AST.Types.Type dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.DomainWith e dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage, Data.Typeable.Internal.Typeable e, Data.Data.Data (e dom stage)) => Data.Data.Data (Language.Haskell.Tools.AST.Ann.Ann e dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.DomainWith e dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage, Data.Typeable.Internal.Typeable e, Data.Data.Data (e dom stage)) => Data.Data.Data (Language.Haskell.Tools.AST.Ann.AnnList e dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.DomainWith e dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage, Data.Typeable.Internal.Typeable e, Data.Data.Data (e dom stage)) => Data.Data.Data (Language.Haskell.Tools.AST.Ann.AnnMaybe e dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.DomainWith expr dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage, Data.Typeable.Internal.Typeable expr, Data.Data.Data (expr dom stage)) => Data.Data.Data (Language.Haskell.Tools.AST.Exprs.Alt' expr dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.DomainWith expr dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage, Data.Typeable.Internal.Typeable expr, Data.Data.Data (expr dom stage)) => Data.Data.Data (Language.Haskell.Tools.AST.Exprs.CaseRhs' expr dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.DomainWith expr dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage, Data.Typeable.Internal.Typeable expr, Data.Data.Data (expr dom stage)) => Data.Data.Data (Language.Haskell.Tools.AST.Exprs.GuardedCaseRhs' expr dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.DomainWith expr dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage, Data.Typeable.Internal.Typeable expr, Data.Data.Data (expr dom stage)) => Data.Data.Data (Language.Haskell.Tools.AST.Stmts.Stmt' expr dom stage)
- Language.Haskell.Tools.AST.Instances.Data: instance (Language.Haskell.Tools.AST.Ann.DomainWith k dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage, Data.Typeable.Internal.Typeable k, Data.Data.Data (k dom stage)) => Data.Data.Data (Language.Haskell.Tools.AST.Kinds.Promoted k dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Base.ArrowAppl dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Base.Assoc dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Base.CallConv dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Base.ConlikeAnnot dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Base.DataOrNewtypeKeyword dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Base.DoKind dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Base.LineNumber dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Base.ModuleName dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Base.Name dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Base.Operator dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Base.OverlapPragma dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Base.PhaseControl dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Base.PhaseInvert dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Base.PhaseNumber dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Base.Precedence dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Base.QualifiedName dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Base.Role dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Base.Safety dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Base.StringNode dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Base.TypeKeyword dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Base.UnqualName dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Binds.AnnotationSubject dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Binds.FixitySignature dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Binds.GuardedRhs dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Binds.LocalBind dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Binds.LocalBinds dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Binds.Match dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Binds.MatchLhs dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Binds.MinimalFormula dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Binds.Rhs dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Binds.RhsGuard dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Binds.Rule dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Binds.TopLevelPragma dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Binds.TypeSignature dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Binds.ValueBind dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.ClassBody dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.ClassElement dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.ConDecl dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.Decl dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.DeclHead dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.Deriving dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.FieldDecl dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.FunDep dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.FunDeps dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.GadtConDecl dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.GadtConType dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.InjectivityAnn dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.InstBody dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.InstBodyDecl dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.InstanceHead dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.InstanceRule dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.PatSynLhs dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.PatSynRhs dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.PatSynWhere dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.PatternSynonym dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.PatternTypeSignature dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.TypeEqn dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.TypeFamily dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Decls.TypeFamilySpec dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Exprs.Cmd dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Exprs.Expr dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Exprs.ExprPragma dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Exprs.FieldUpdate dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Exprs.FieldWildcard dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Exprs.Number dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Exprs.SourceRange dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Exprs.TupSecElem dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Kinds.Kind dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Kinds.KindConstraint dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Literals.Literal dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Modules.ExportSpec dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Modules.ExportSpecList dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Modules.FilePragma dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Modules.IESpec dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Modules.ImportDecl dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Modules.ImportQualified dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Modules.ImportRenaming dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Modules.ImportSafe dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Modules.ImportSource dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Modules.ImportSpec dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Modules.LanguageExtension dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Modules.Module dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Modules.ModuleHead dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Modules.ModulePragma dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Modules.SubSpec dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Modules.TypeNamespace dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Patterns.Pattern dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Patterns.PatternField dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Stmts.CompStmt dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Stmts.ListCompBody dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.TH.Bracket dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.TH.QQString dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.TH.QuasiQuote dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.TH.Splice dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Types.Assertion dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Types.Context dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Types.TyVar dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (Language.Haskell.Tools.AST.Types.Type dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (e dom stage) => GHC.Classes.Eq (Language.Haskell.Tools.AST.Ann.Ann e dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (e dom stage) => GHC.Classes.Eq (Language.Haskell.Tools.AST.Ann.AnnList e dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (e dom stage) => GHC.Classes.Eq (Language.Haskell.Tools.AST.Ann.AnnMaybe e dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (expr dom stage) => GHC.Classes.Eq (Language.Haskell.Tools.AST.Exprs.Alt' expr dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (expr dom stage) => GHC.Classes.Eq (Language.Haskell.Tools.AST.Exprs.CaseRhs' expr dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (expr dom stage) => GHC.Classes.Eq (Language.Haskell.Tools.AST.Exprs.GuardedCaseRhs' expr dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (expr dom stage) => GHC.Classes.Eq (Language.Haskell.Tools.AST.Stmts.Stmt' expr dom stage)
- Language.Haskell.Tools.AST.Instances.Eq: instance GHC.Classes.Eq (k dom stage) => GHC.Classes.Eq (Language.Haskell.Tools.AST.Kinds.Promoted k dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Base.ArrowAppl dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Base.Assoc dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Base.CallConv dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Base.ConlikeAnnot dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Base.DataOrNewtypeKeyword dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Base.DoKind dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Base.LineNumber dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Base.ModuleName dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Base.Name dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Base.Operator dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Base.OverlapPragma dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Base.PhaseControl dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Base.PhaseInvert dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Base.PhaseNumber dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Base.Precedence dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Base.QualifiedName dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Base.Role dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Base.Safety dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Base.StringNode dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Base.TypeKeyword dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Base.UnqualName dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Binds.AnnotationSubject dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Binds.FixitySignature dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Binds.GuardedRhs dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Binds.LocalBind dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Binds.LocalBinds dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Binds.Match dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Binds.MatchLhs dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Binds.MinimalFormula dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Binds.Rhs dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Binds.RhsGuard dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Binds.Rule dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Binds.TopLevelPragma dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Binds.TypeSignature dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Binds.ValueBind dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.ClassBody dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.ClassElement dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.ConDecl dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.Decl dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.DeclHead dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.Deriving dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.FieldDecl dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.FunDep dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.FunDeps dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.GadtConDecl dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.GadtConType dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.InjectivityAnn dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.InstBody dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.InstBodyDecl dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.InstanceHead dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.InstanceRule dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.PatSynLhs dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.PatSynRhs dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.PatSynWhere dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.PatternSynonym dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.PatternTypeSignature dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.TypeEqn dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.TypeFamily dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Decls.TypeFamilySpec dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Exprs.Cmd dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Exprs.Expr dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Exprs.ExprPragma dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Exprs.FieldUpdate dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Exprs.FieldWildcard dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Exprs.Number dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Exprs.SourceRange dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Exprs.TupSecElem dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Kinds.Kind dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Kinds.KindConstraint dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Literals.Literal dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Modules.ExportSpec dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Modules.ExportSpecList dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Modules.FilePragma dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Modules.IESpec dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Modules.ImportDecl dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Modules.ImportQualified dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Modules.ImportRenaming dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Modules.ImportSafe dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Modules.ImportSource dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Modules.ImportSpec dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Modules.LanguageExtension dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Modules.Module dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Modules.ModuleHead dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Modules.ModulePragma dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Modules.SubSpec dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Modules.TypeNamespace dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Patterns.Pattern dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Patterns.PatternField dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Stmts.CompStmt dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Stmts.ListCompBody dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.TH.Bracket dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.TH.QQString dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.TH.QuasiQuote dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.TH.Splice dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Types.Assertion dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Types.Context dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Types.TyVar dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Types.Type dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage, GHC.Generics.Generic (e dom stage)) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Ann.Ann e dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage, GHC.Generics.Generic (e dom stage)) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Ann.AnnList e dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage, GHC.Generics.Generic (e dom stage)) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Ann.AnnMaybe e dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage, GHC.Generics.Generic (expr dom stage)) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Exprs.Alt' expr dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage, GHC.Generics.Generic (expr dom stage)) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Exprs.CaseRhs' expr dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage, GHC.Generics.Generic (expr dom stage)) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Exprs.GuardedCaseRhs' expr dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage, GHC.Generics.Generic (expr dom stage)) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Stmts.Stmt' expr dom stage)
- Language.Haskell.Tools.AST.Instances.Generic: instance (Language.Haskell.Tools.AST.Ann.Domain dom, Language.Haskell.Tools.AST.Ann.SourceInfo stage, GHC.Generics.Generic (k dom stage)) => GHC.Generics.Generic (Language.Haskell.Tools.AST.Kinds.Promoted k dom stage)
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Base.ArrowAppl
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Base.Assoc
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Base.CallConv
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Base.ConlikeAnnot
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Base.DataOrNewtypeKeyword
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Base.DoKind
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Base.LineNumber
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Base.ModuleName
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Base.Name
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Base.Operator
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Base.OverlapPragma
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Base.PhaseControl
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Base.PhaseInvert
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Base.PhaseNumber
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Base.Precedence
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Base.QualifiedName
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Base.Role
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Base.Safety
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Base.StringNode
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Base.TypeKeyword
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Base.UnqualName
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Binds.AnnotationSubject
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Binds.FixitySignature
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Binds.GuardedRhs
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Binds.LocalBind
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Binds.LocalBinds
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Binds.Match
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Binds.MatchLhs
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Binds.MinimalFormula
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Binds.Rhs
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Binds.RhsGuard
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Binds.Rule
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Binds.TopLevelPragma
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Binds.TypeSignature
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Binds.ValueBind
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.ClassBody
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.ClassElement
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.ConDecl
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.Decl
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.DeclHead
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.Deriving
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.FieldDecl
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.FunDep
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.FunDeps
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.GadtConDecl
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.GadtConType
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.InjectivityAnn
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.InstBody
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.InstBodyDecl
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.InstanceHead
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.InstanceRule
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.PatSynLhs
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.PatSynRhs
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.PatSynWhere
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.PatternSynonym
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.PatternTypeSignature
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.TypeEqn
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.TypeFamily
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Decls.TypeFamilySpec
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Exprs.Cmd
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Exprs.Expr
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Exprs.ExprPragma
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Exprs.FieldUpdate
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Exprs.FieldWildcard
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Exprs.Number
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Exprs.SourceRange
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Exprs.TupSecElem
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Kinds.Kind
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Kinds.KindConstraint
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Literals.Literal
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Modules.ExportSpec
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Modules.ExportSpecList
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Modules.FilePragma
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Modules.IESpec
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Modules.ImportDecl
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Modules.ImportQualified
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Modules.ImportRenaming
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Modules.ImportSafe
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Modules.ImportSource
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Modules.ImportSpec
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Modules.LanguageExtension
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Modules.Module
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Modules.ModuleHead
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Modules.ModulePragma
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Modules.SubSpec
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Modules.TypeNamespace
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Patterns.Pattern
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Patterns.PatternField
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Stmts.CompStmt
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Stmts.ListCompBody
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.TH.Bracket
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.TH.QQString
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.TH.QuasiQuote
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.TH.Splice
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Types.Assertion
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Types.Context
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Types.TyVar
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal Language.Haskell.Tools.AST.Types.Type
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal expr0 => Language.Haskell.Tools.AST.Ann.SemanticTraversal (Language.Haskell.Tools.AST.Exprs.Alt' expr0)
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal expr0 => Language.Haskell.Tools.AST.Ann.SemanticTraversal (Language.Haskell.Tools.AST.Exprs.CaseRhs' expr0)
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal expr0 => Language.Haskell.Tools.AST.Ann.SemanticTraversal (Language.Haskell.Tools.AST.Exprs.GuardedCaseRhs' expr0)
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal expr0 => Language.Haskell.Tools.AST.Ann.SemanticTraversal (Language.Haskell.Tools.AST.Stmts.Stmt' expr0)
- Language.Haskell.Tools.AST.Instances.SemanticTraversal: instance Language.Haskell.Tools.AST.Ann.SemanticTraversal t0 => Language.Haskell.Tools.AST.Ann.SemanticTraversal (Language.Haskell.Tools.AST.Kinds.Promoted t0)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Base.ArrowAppl dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Base.Assoc dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Base.CallConv dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Base.ConlikeAnnot dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Base.DataOrNewtypeKeyword dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Base.DoKind dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Base.LineNumber dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Base.ModuleName dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Base.Name dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Base.Operator dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Base.OverlapPragma dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Base.PhaseControl dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Base.PhaseInvert dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Base.PhaseNumber dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Base.Precedence dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Base.QualifiedName dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Base.Role dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Base.Safety dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Base.StringNode dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Base.TypeKeyword dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Base.UnqualName dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Binds.AnnotationSubject dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Binds.FixitySignature dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Binds.GuardedRhs dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Binds.LocalBind dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Binds.LocalBinds dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Binds.Match dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Binds.MatchLhs dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Binds.MinimalFormula dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Binds.Rhs dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Binds.RhsGuard dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Binds.Rule dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Binds.TopLevelPragma dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Binds.TypeSignature dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Binds.ValueBind dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.ClassBody dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.ClassElement dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.ConDecl dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.Decl dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.DeclHead dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.Deriving dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.FieldDecl dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.FunDep dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.FunDeps dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.GadtConDecl dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.GadtConType dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.InjectivityAnn dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.InstBody dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.InstBodyDecl dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.InstanceHead dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.InstanceRule dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.PatSynLhs dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.PatSynRhs dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.PatSynWhere dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.PatternSynonym dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.PatternTypeSignature dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.TypeEqn dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.TypeFamily dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Decls.TypeFamilySpec dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Exprs.Cmd dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Exprs.Expr dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Exprs.ExprPragma dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Exprs.FieldUpdate dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Exprs.FieldWildcard dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Exprs.Number dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Exprs.SourceRange dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Exprs.TupSecElem dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Kinds.Kind dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Kinds.KindConstraint dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Literals.Literal dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Modules.ExportSpec dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Modules.ExportSpecList dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Modules.FilePragma dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Modules.IESpec dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Modules.ImportDecl dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Modules.ImportQualified dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Modules.ImportRenaming dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Modules.ImportSafe dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Modules.ImportSource dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Modules.ImportSpec dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Modules.LanguageExtension dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Modules.Module dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Modules.ModuleHead dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Modules.ModulePragma dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Modules.SubSpec dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Modules.TypeNamespace dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Patterns.Pattern dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Patterns.PatternField dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Stmts.CompStmt dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Stmts.ListCompBody dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.TH.Bracket dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.TH.QQString dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.TH.QuasiQuote dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.TH.Splice dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Types.Assertion dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Types.Context dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Types.TyVar dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (Language.Haskell.Tools.AST.Types.Type dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (e dom stage) => GHC.Show.Show (Language.Haskell.Tools.AST.Ann.Ann e dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (e dom stage) => GHC.Show.Show (Language.Haskell.Tools.AST.Ann.AnnList e dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (e dom stage) => GHC.Show.Show (Language.Haskell.Tools.AST.Ann.AnnMaybe e dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (expr dom stage) => GHC.Show.Show (Language.Haskell.Tools.AST.Exprs.Alt' expr dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (expr dom stage) => GHC.Show.Show (Language.Haskell.Tools.AST.Exprs.CaseRhs' expr dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (expr dom stage) => GHC.Show.Show (Language.Haskell.Tools.AST.Exprs.GuardedCaseRhs' expr dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (expr dom stage) => GHC.Show.Show (Language.Haskell.Tools.AST.Stmts.Stmt' expr dom stage)
- Language.Haskell.Tools.AST.Instances.Show: instance GHC.Show.Show (k dom stage) => GHC.Show.Show (Language.Haskell.Tools.AST.Kinds.Promoted k dom stage)
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Base.ArrowAppl
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Base.Assoc
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Base.CallConv
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Base.ConlikeAnnot
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Base.DataOrNewtypeKeyword
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Base.DoKind
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Base.LineNumber
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Base.ModuleName
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Base.Name
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Base.Operator
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Base.OverlapPragma
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Base.PhaseControl
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Base.PhaseInvert
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Base.PhaseNumber
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Base.Precedence
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Base.QualifiedName
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Base.Role
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Base.Safety
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Base.StringNode
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Base.TypeKeyword
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Base.UnqualName
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Binds.AnnotationSubject
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Binds.FixitySignature
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Binds.GuardedRhs
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Binds.LocalBind
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Binds.LocalBinds
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Binds.Match
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Binds.MatchLhs
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Binds.MinimalFormula
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Binds.Rhs
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Binds.RhsGuard
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Binds.Rule
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Binds.TopLevelPragma
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Binds.TypeSignature
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Binds.ValueBind
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.ClassBody
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.ClassElement
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.ConDecl
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.Decl
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.DeclHead
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.Deriving
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.FieldDecl
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.FunDep
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.FunDeps
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.GadtConDecl
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.GadtConType
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.InjectivityAnn
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.InstBody
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.InstBodyDecl
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.InstanceHead
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.InstanceRule
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.PatSynLhs
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.PatSynRhs
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.PatSynWhere
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.PatternSynonym
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.PatternTypeSignature
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.TypeEqn
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.TypeFamily
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Decls.TypeFamilySpec
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Exprs.Cmd
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Exprs.Expr
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Exprs.ExprPragma
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Exprs.FieldUpdate
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Exprs.FieldWildcard
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Exprs.Number
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Exprs.SourceRange
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Exprs.TupSecElem
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Kinds.Kind
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Kinds.KindConstraint
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Literals.Literal
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Modules.ExportSpec
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Modules.ExportSpecList
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Modules.FilePragma
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Modules.IESpec
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Modules.ImportDecl
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Modules.ImportQualified
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Modules.ImportRenaming
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Modules.ImportSafe
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Modules.ImportSource
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Modules.ImportSpec
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Modules.LanguageExtension
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Modules.Module
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Modules.ModuleHead
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Modules.ModulePragma
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Modules.SubSpec
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Modules.TypeNamespace
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Patterns.Pattern
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Patterns.PatternField
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Stmts.CompStmt
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Stmts.ListCompBody
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.TH.Bracket
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.TH.QQString
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.TH.QuasiQuote
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.TH.Splice
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Types.Assertion
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Types.Context
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Types.TyVar
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal Language.Haskell.Tools.AST.Types.Type
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal expr0 => Language.Haskell.Tools.AST.Ann.SourceInfoTraversal (Language.Haskell.Tools.AST.Exprs.Alt' expr0)
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal expr0 => Language.Haskell.Tools.AST.Ann.SourceInfoTraversal (Language.Haskell.Tools.AST.Exprs.CaseRhs' expr0)
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal expr0 => Language.Haskell.Tools.AST.Ann.SourceInfoTraversal (Language.Haskell.Tools.AST.Exprs.GuardedCaseRhs' expr0)
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal expr0 => Language.Haskell.Tools.AST.Ann.SourceInfoTraversal (Language.Haskell.Tools.AST.Stmts.Stmt' expr0)
- Language.Haskell.Tools.AST.Instances.SourceInfoTraversal: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal t0 => Language.Haskell.Tools.AST.Ann.SourceInfoTraversal (Language.Haskell.Tools.AST.Kinds.Promoted t0)
- Language.Haskell.Tools.AST.Kinds: KindApp :: Ann Kind dom stage -> Ann Kind dom stage -> Kind dom stage
- Language.Haskell.Tools.AST.Kinds: KindConstraint :: Ann Kind dom stage -> KindConstraint dom stage
- Language.Haskell.Tools.AST.Kinds: KindFn :: Ann Kind dom stage -> Ann Kind dom stage -> Kind dom stage
- Language.Haskell.Tools.AST.Kinds: KindList :: Ann Kind dom stage -> Kind dom stage
- Language.Haskell.Tools.AST.Kinds: KindParen :: Ann Kind dom stage -> Kind dom stage
- Language.Haskell.Tools.AST.Kinds: KindPromoted :: Ann (Promoted Kind) dom stage -> Kind dom stage
- Language.Haskell.Tools.AST.Kinds: KindStar :: Kind dom stage
- Language.Haskell.Tools.AST.Kinds: KindUnbox :: Kind dom stage
- Language.Haskell.Tools.AST.Kinds: KindVar :: Ann Name dom stage -> Kind dom stage
- Language.Haskell.Tools.AST.Kinds: PromotedCon :: Ann Name dom stage -> Promoted t dom stage
- Language.Haskell.Tools.AST.Kinds: PromotedInt :: Integer -> Promoted t dom stage
- Language.Haskell.Tools.AST.Kinds: PromotedList :: AnnList t dom stage -> Promoted t dom stage
- Language.Haskell.Tools.AST.Kinds: PromotedString :: String -> Promoted t dom stage
- Language.Haskell.Tools.AST.Kinds: PromotedTuple :: AnnList t dom stage -> Promoted t dom stage
- Language.Haskell.Tools.AST.Kinds: PromotedUnit :: Promoted t dom stage
- Language.Haskell.Tools.AST.Kinds: [_kindAppArg] :: Kind dom stage -> Ann Kind dom stage
- Language.Haskell.Tools.AST.Kinds: [_kindAppFun] :: Kind dom stage -> Ann Kind dom stage
- Language.Haskell.Tools.AST.Kinds: [_kindConstr] :: KindConstraint dom stage -> Ann Kind dom stage
- Language.Haskell.Tools.AST.Kinds: [_kindElem] :: Kind dom stage -> Ann Kind dom stage
- Language.Haskell.Tools.AST.Kinds: [_kindLeft] :: Kind dom stage -> Ann Kind dom stage
- Language.Haskell.Tools.AST.Kinds: [_kindParen] :: Kind dom stage -> Ann Kind dom stage
- Language.Haskell.Tools.AST.Kinds: [_kindPromoted] :: Kind dom stage -> Ann (Promoted Kind) dom stage
- Language.Haskell.Tools.AST.Kinds: [_kindRight] :: Kind dom stage -> Ann Kind dom stage
- Language.Haskell.Tools.AST.Kinds: [_kindVar] :: Kind dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Kinds: [_promotedConName] :: Promoted t dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Kinds: [_promotedElements] :: Promoted t dom stage -> AnnList t dom stage
- Language.Haskell.Tools.AST.Kinds: [_promotedIntValue] :: Promoted t dom stage -> Integer
- Language.Haskell.Tools.AST.Kinds: [_promotedStringValue] :: Promoted t dom stage -> String
- Language.Haskell.Tools.AST.Kinds: data Kind dom stage
- Language.Haskell.Tools.AST.Kinds: data KindConstraint dom stage
- Language.Haskell.Tools.AST.Kinds: data Promoted t dom stage
- Language.Haskell.Tools.AST.Literals: CharLit :: Char -> Literal dom stage
- Language.Haskell.Tools.AST.Literals: FracLit :: Rational -> Literal dom stage
- Language.Haskell.Tools.AST.Literals: IntLit :: Integer -> Literal dom stage
- Language.Haskell.Tools.AST.Literals: PrimCharLit :: Char -> Literal dom stage
- Language.Haskell.Tools.AST.Literals: PrimDoubleLit :: Rational -> Literal dom stage
- Language.Haskell.Tools.AST.Literals: PrimFloatLit :: Rational -> Literal dom stage
- Language.Haskell.Tools.AST.Literals: PrimIntLit :: Integer -> Literal dom stage
- Language.Haskell.Tools.AST.Literals: PrimStringLit :: String -> Literal dom stage
- Language.Haskell.Tools.AST.Literals: PrimWordLit :: Integer -> Literal dom stage
- Language.Haskell.Tools.AST.Literals: StringLit :: String -> Literal dom stage
- Language.Haskell.Tools.AST.Literals: [_charLitValue] :: Literal dom stage -> Char
- Language.Haskell.Tools.AST.Literals: [_floatLitValue] :: Literal dom stage -> Rational
- Language.Haskell.Tools.AST.Literals: [_fracLitValue] :: Literal dom stage -> Rational
- Language.Haskell.Tools.AST.Literals: [_intLitValue] :: Literal dom stage -> Integer
- Language.Haskell.Tools.AST.Literals: [_stringLitValue] :: Literal dom stage -> String
- Language.Haskell.Tools.AST.Literals: data Literal dom stage
- Language.Haskell.Tools.AST.Modules: DeclExport :: Ann IESpec dom stage -> ExportSpec dom stage
- Language.Haskell.Tools.AST.Modules: ExportSpecList :: AnnList ExportSpec dom stage -> ExportSpecList dom stage
- Language.Haskell.Tools.AST.Modules: IESpec :: Ann Name dom stage -> AnnMaybe SubSpec dom stage -> IESpec dom stage
- Language.Haskell.Tools.AST.Modules: ImportDecl :: AnnMaybe ImportSource dom stage -> AnnMaybe ImportQualified dom stage -> AnnMaybe ImportSafe dom stage -> AnnMaybe StringNode dom stage -> Ann ModuleName dom stage -> AnnMaybe ImportRenaming dom stage -> AnnMaybe ImportSpec dom stage -> ImportDecl dom stage
- Language.Haskell.Tools.AST.Modules: ImportQualified :: ImportQualified dom stage
- Language.Haskell.Tools.AST.Modules: ImportRenaming :: Ann ModuleName dom stage -> ImportRenaming dom stage
- Language.Haskell.Tools.AST.Modules: ImportSafe :: ImportSafe dom stage
- Language.Haskell.Tools.AST.Modules: ImportSource :: ImportSource dom stage
- Language.Haskell.Tools.AST.Modules: ImportSpecHiding :: AnnList IESpec dom stage -> ImportSpec dom stage
- Language.Haskell.Tools.AST.Modules: ImportSpecList :: AnnList IESpec dom stage -> ImportSpec dom stage
- Language.Haskell.Tools.AST.Modules: LanguageExtension :: String -> LanguageExtension dom stage
- Language.Haskell.Tools.AST.Modules: LanguagePragma :: AnnList LanguageExtension dom stage -> FilePragma dom stage
- Language.Haskell.Tools.AST.Modules: Module :: AnnList FilePragma dom stage -> AnnMaybe ModuleHead dom stage -> AnnList ImportDecl dom stage -> AnnList Decl dom stage -> Module dom stage
- Language.Haskell.Tools.AST.Modules: ModuleDeprecatedPragma :: AnnList StringNode dom stage -> ModulePragma dom stage
- Language.Haskell.Tools.AST.Modules: ModuleExport :: Ann ModuleName dom stage -> ExportSpec dom stage
- Language.Haskell.Tools.AST.Modules: ModuleHead :: Ann ModuleName dom stage -> AnnMaybe ExportSpecList dom stage -> AnnMaybe ModulePragma dom stage -> ModuleHead dom stage
- Language.Haskell.Tools.AST.Modules: ModuleWarningPragma :: AnnList StringNode dom stage -> ModulePragma dom stage
- Language.Haskell.Tools.AST.Modules: OptionsPragma :: Ann StringNode dom stage -> FilePragma dom stage
- Language.Haskell.Tools.AST.Modules: SubSpecAll :: SubSpec dom stage
- Language.Haskell.Tools.AST.Modules: SubSpecList :: AnnList Name dom stage -> SubSpec dom stage
- Language.Haskell.Tools.AST.Modules: TypeNamespace :: TypeNamespace dom stage
- Language.Haskell.Tools.AST.Modules: [_espExports] :: ExportSpecList dom stage -> AnnList ExportSpec dom stage
- Language.Haskell.Tools.AST.Modules: [_essList] :: SubSpec dom stage -> AnnList Name dom stage
- Language.Haskell.Tools.AST.Modules: [_exportDecl] :: ExportSpec dom stage -> Ann IESpec dom stage
- Language.Haskell.Tools.AST.Modules: [_exportModuleName] :: ExportSpec dom stage -> Ann ModuleName dom stage
- Language.Haskell.Tools.AST.Modules: [_filePragmas] :: Module dom stage -> AnnList FilePragma dom stage
- Language.Haskell.Tools.AST.Modules: [_ieName] :: IESpec dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Modules: [_ieSubspec] :: IESpec dom stage -> AnnMaybe SubSpec dom stage
- Language.Haskell.Tools.AST.Modules: [_importAs] :: ImportDecl dom stage -> AnnMaybe ImportRenaming dom stage
- Language.Haskell.Tools.AST.Modules: [_importModule] :: ImportDecl dom stage -> Ann ModuleName dom stage
- Language.Haskell.Tools.AST.Modules: [_importPkg] :: ImportDecl dom stage -> AnnMaybe StringNode dom stage
- Language.Haskell.Tools.AST.Modules: [_importQualified] :: ImportDecl dom stage -> AnnMaybe ImportQualified dom stage
- Language.Haskell.Tools.AST.Modules: [_importRename] :: ImportRenaming dom stage -> Ann ModuleName dom stage
- Language.Haskell.Tools.AST.Modules: [_importSafe] :: ImportDecl dom stage -> AnnMaybe ImportSafe dom stage
- Language.Haskell.Tools.AST.Modules: [_importSource] :: ImportDecl dom stage -> AnnMaybe ImportSource dom stage
- Language.Haskell.Tools.AST.Modules: [_importSpecHiding] :: ImportSpec dom stage -> AnnList IESpec dom stage
- Language.Haskell.Tools.AST.Modules: [_importSpecList] :: ImportSpec dom stage -> AnnList IESpec dom stage
- Language.Haskell.Tools.AST.Modules: [_importSpec] :: ImportDecl dom stage -> AnnMaybe ImportSpec dom stage
- Language.Haskell.Tools.AST.Modules: [_langExt] :: LanguageExtension dom stage -> String
- Language.Haskell.Tools.AST.Modules: [_lpPragmas] :: FilePragma dom stage -> AnnList LanguageExtension dom stage
- Language.Haskell.Tools.AST.Modules: [_mhExports] :: ModuleHead dom stage -> AnnMaybe ExportSpecList dom stage
- Language.Haskell.Tools.AST.Modules: [_mhName] :: ModuleHead dom stage -> Ann ModuleName dom stage
- Language.Haskell.Tools.AST.Modules: [_mhPragma] :: ModuleHead dom stage -> AnnMaybe ModulePragma dom stage
- Language.Haskell.Tools.AST.Modules: [_modDecl] :: Module dom stage -> AnnList Decl dom stage
- Language.Haskell.Tools.AST.Modules: [_modDeprecatedPragma] :: ModulePragma dom stage -> AnnList StringNode dom stage
- Language.Haskell.Tools.AST.Modules: [_modHead] :: Module dom stage -> AnnMaybe ModuleHead dom stage
- Language.Haskell.Tools.AST.Modules: [_modImports] :: Module dom stage -> AnnList ImportDecl dom stage
- Language.Haskell.Tools.AST.Modules: [_modWarningStr] :: ModulePragma dom stage -> AnnList StringNode dom stage
- Language.Haskell.Tools.AST.Modules: [_opStr] :: FilePragma dom stage -> Ann StringNode dom stage
- Language.Haskell.Tools.AST.Modules: data ExportSpec dom stage
- Language.Haskell.Tools.AST.Modules: data ExportSpecList dom stage
- Language.Haskell.Tools.AST.Modules: data FilePragma dom stage
- Language.Haskell.Tools.AST.Modules: data IESpec dom stage
- Language.Haskell.Tools.AST.Modules: data ImportDecl dom stage
- Language.Haskell.Tools.AST.Modules: data ImportQualified dom stage
- Language.Haskell.Tools.AST.Modules: data ImportRenaming dom stage
- Language.Haskell.Tools.AST.Modules: data ImportSafe dom stage
- Language.Haskell.Tools.AST.Modules: data ImportSource dom stage
- Language.Haskell.Tools.AST.Modules: data ImportSpec dom stage
- Language.Haskell.Tools.AST.Modules: data LanguageExtension dom stage
- Language.Haskell.Tools.AST.Modules: data Module dom stage
- Language.Haskell.Tools.AST.Modules: data ModuleHead dom stage
- Language.Haskell.Tools.AST.Modules: data ModulePragma dom stage
- Language.Haskell.Tools.AST.Modules: data SubSpec dom stage
- Language.Haskell.Tools.AST.Modules: data TypeNamespace dom stage
- Language.Haskell.Tools.AST.Patterns: AppPat :: Ann Name dom stage -> AnnList Pattern dom stage -> Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: AsPat :: Ann Name dom stage -> Ann Pattern dom stage -> Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: BangPat :: Ann Pattern dom stage -> Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: FieldPunPattern :: Ann Name dom stage -> PatternField dom stage
- Language.Haskell.Tools.AST.Patterns: FieldWildcardPattern :: Ann FieldWildcard dom stage -> PatternField dom stage
- Language.Haskell.Tools.AST.Patterns: InfixPat :: Ann Pattern dom stage -> Ann Operator dom stage -> Ann Pattern dom stage -> Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: IrrPat :: Ann Pattern dom stage -> Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: ListPat :: AnnList Pattern dom stage -> Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: LitPat :: Ann Literal dom stage -> Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: NPlusKPat :: Ann Name dom stage -> Ann Literal dom stage -> Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: NormalFieldPattern :: Ann Name dom stage -> Ann Pattern dom stage -> PatternField dom stage
- Language.Haskell.Tools.AST.Patterns: ParArrPat :: AnnList Pattern dom stage -> Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: ParenPat :: Ann Pattern dom stage -> Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: QuasiQuotePat :: Ann QuasiQuote dom stage -> Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: RecPat :: Ann Name dom stage -> AnnList PatternField dom stage -> Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: SplicePat :: Ann Splice dom stage -> Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: TuplePat :: AnnList Pattern dom stage -> Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: TypeSigPat :: Ann Pattern dom stage -> Ann Type dom stage -> Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: UnboxTuplePat :: AnnList Pattern dom stage -> Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: VarPat :: Ann Name dom stage -> Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: ViewPat :: Ann Expr dom stage -> Ann Pattern dom stage -> Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: WildPat :: Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: [_fieldPatternName] :: PatternField dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Patterns: [_fieldPatternWildcard] :: PatternField dom stage -> Ann FieldWildcard dom stage
- Language.Haskell.Tools.AST.Patterns: [_fieldPattern] :: PatternField dom stage -> Ann Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: [_patQQ] :: Pattern dom stage -> Ann QuasiQuote dom stage
- Language.Haskell.Tools.AST.Patterns: [_patternArgs] :: Pattern dom stage -> AnnList Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: [_patternElems] :: Pattern dom stage -> AnnList Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: [_patternExpr] :: Pattern dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Patterns: [_patternFields] :: Pattern dom stage -> AnnList PatternField dom stage
- Language.Haskell.Tools.AST.Patterns: [_patternInner] :: Pattern dom stage -> Ann Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: [_patternLhs] :: Pattern dom stage -> Ann Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: [_patternLit] :: Pattern dom stage -> Ann Literal dom stage
- Language.Haskell.Tools.AST.Patterns: [_patternLiteral] :: Pattern dom stage -> Ann Literal dom stage
- Language.Haskell.Tools.AST.Patterns: [_patternName] :: Pattern dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Patterns: [_patternOperator] :: Pattern dom stage -> Ann Operator dom stage
- Language.Haskell.Tools.AST.Patterns: [_patternRhs] :: Pattern dom stage -> Ann Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: [_patternSplice] :: Pattern dom stage -> Ann Splice dom stage
- Language.Haskell.Tools.AST.Patterns: [_patternType] :: Pattern dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Patterns: data Pattern dom stage
- Language.Haskell.Tools.AST.Patterns: data PatternField dom stage
- Language.Haskell.Tools.AST.References: bracket :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Bracket dom_aPfP stage_aPfQ) (Ann Bracket dom_aPfP stage_aPfQ)
- Language.Haskell.Tools.AST.References: cePatSig :: forall dom_aUp8 stage_aUp9. Partial (ClassElement dom_aUp8 stage_aUp9) (ClassElement dom_aUp8 stage_aUp9) (Ann PatternTypeSignature dom_aUp8 stage_aUp9) (Ann PatternTypeSignature dom_aUp8 stage_aUp9)
- Language.Haskell.Tools.AST.References: instBodyPatSyn :: forall dom_aUp2 stage_aUp3. Partial (InstBodyDecl dom_aUp2 stage_aUp3) (InstBodyDecl dom_aUp2 stage_aUp3) (Ann PatternSynonym dom_aUp2 stage_aUp3) (Ann PatternSynonym dom_aUp2 stage_aUp3)
- Language.Haskell.Tools.AST.References: irRule :: forall dom_aUoM stage_aUoN. Partial (InstanceRule dom_aUoM stage_aUoN) (InstanceRule dom_aUoM stage_aUoN) (Ann InstanceRule dom_aUoM stage_aUoN) (Ann InstanceRule dom_aUoM stage_aUoN)
- Language.Haskell.Tools.AST.SemaInfoTypes: AmbiguousNameInfo :: Scope -> Bool -> RdrName -> SrcSpan -> NameInfo n
- Language.Haskell.Tools.AST.SemaInfoTypes: CNameInfo :: Scope -> Bool -> Id -> Maybe Fixity -> CNameInfo
- Language.Haskell.Tools.AST.SemaInfoTypes: ImplicitFieldInfo :: [(Name, Name)] -> ImplicitFieldInfo
- Language.Haskell.Tools.AST.SemaInfoTypes: ImplicitNameInfo :: Scope -> Bool -> String -> SrcSpan -> NameInfo n
- Language.Haskell.Tools.AST.SemaInfoTypes: ImportInfo :: Module -> [n] -> [n] -> ImportInfo n
- Language.Haskell.Tools.AST.SemaInfoTypes: ModuleInfo :: Module -> Bool -> [n] -> ModuleInfo n
- Language.Haskell.Tools.AST.SemaInfoTypes: NameInfo :: Scope -> Bool -> n -> NameInfo n
- Language.Haskell.Tools.AST.SemaInfoTypes: NoSemanticInfo :: NoSemanticInfo
- Language.Haskell.Tools.AST.SemaInfoTypes: NodeInfo :: sema -> src -> NodeInfo sema src
- Language.Haskell.Tools.AST.SemaInfoTypes: ScopeInfo :: Scope -> ScopeInfo
- Language.Haskell.Tools.AST.SemaInfoTypes: [_ambiguousLocation] :: NameInfo n -> SrcSpan
- Language.Haskell.Tools.AST.SemaInfoTypes: [_ambiguousName] :: NameInfo n -> RdrName
- Language.Haskell.Tools.AST.SemaInfoTypes: [_availableNames] :: ImportInfo n -> [n]
- Language.Haskell.Tools.AST.SemaInfoTypes: [_cnameFixity] :: CNameInfo -> Maybe Fixity
- Language.Haskell.Tools.AST.SemaInfoTypes: [_cnameInfo] :: CNameInfo -> Id
- Language.Haskell.Tools.AST.SemaInfoTypes: [_cnameIsDefined] :: CNameInfo -> Bool
- Language.Haskell.Tools.AST.SemaInfoTypes: [_cnameScopedLocals] :: CNameInfo -> Scope
- Language.Haskell.Tools.AST.SemaInfoTypes: [_defIsBootModule] :: ModuleInfo n -> Bool
- Language.Haskell.Tools.AST.SemaInfoTypes: [_defModuleName] :: ModuleInfo n -> Module
- Language.Haskell.Tools.AST.SemaInfoTypes: [_exprScopedLocals] :: ScopeInfo -> Scope
- Language.Haskell.Tools.AST.SemaInfoTypes: [_implicitFieldBindings] :: ImplicitFieldInfo -> [(Name, Name)]
- Language.Haskell.Tools.AST.SemaInfoTypes: [_implicitLocation] :: NameInfo n -> SrcSpan
- Language.Haskell.Tools.AST.SemaInfoTypes: [_implicitName] :: NameInfo n -> String
- Language.Haskell.Tools.AST.SemaInfoTypes: [_implicitNames] :: ModuleInfo n -> [n]
- Language.Haskell.Tools.AST.SemaInfoTypes: [_importedModule] :: ImportInfo n -> Module
- Language.Haskell.Tools.AST.SemaInfoTypes: [_importedNames] :: ImportInfo n -> [n]
- Language.Haskell.Tools.AST.SemaInfoTypes: [_nameInfo] :: NameInfo n -> n
- Language.Haskell.Tools.AST.SemaInfoTypes: [_nameIsDefined] :: NameInfo n -> Bool
- Language.Haskell.Tools.AST.SemaInfoTypes: [_nameScopedLocals] :: NameInfo n -> Scope
- Language.Haskell.Tools.AST.SemaInfoTypes: [_semanticInfo] :: NodeInfo sema src -> sema
- Language.Haskell.Tools.AST.SemaInfoTypes: [_sourceInfo] :: NodeInfo sema src -> src
- Language.Haskell.Tools.AST.SemaInfoTypes: ambiguousLocation :: forall n_amI0. Partial (NameInfo n_amI0) (NameInfo n_amI0) SrcSpan SrcSpan
- Language.Haskell.Tools.AST.SemaInfoTypes: data NodeInfo sema src
- Language.Haskell.Tools.AST.SemaInfoTypes: implicitLocation :: forall n_amI0. Partial (NameInfo n_amI0) (NameInfo n_amI0) SrcSpan SrcSpan
- Language.Haskell.Tools.AST.SemaInfoTypes: instance (Data.Data.Data sema, Data.Data.Data src) => Data.Data.Data (Language.Haskell.Tools.AST.SemaInfoTypes.NodeInfo sema src)
- Language.Haskell.Tools.AST.SemaInfoTypes: instance (GHC.Classes.Eq sema, GHC.Classes.Eq src) => GHC.Classes.Eq (Language.Haskell.Tools.AST.SemaInfoTypes.NodeInfo sema src)
- Language.Haskell.Tools.AST.SemaInfoTypes: instance (GHC.Show.Show sema, GHC.Show.Show src) => GHC.Show.Show (Language.Haskell.Tools.AST.SemaInfoTypes.NodeInfo sema src)
- Language.Haskell.Tools.AST.SemaInfoTypes: semanticInfo :: forall sema_aoMI src_aoMJ sema'_aoST. Lens (NodeInfo sema_aoMI src_aoMJ) (NodeInfo sema'_aoST src_aoMJ) sema_aoMI sema'_aoST
- Language.Haskell.Tools.AST.SemaInfoTypes: sourceInfo :: forall sema_aoMI src_aoMJ src'_aoSW. Lens (NodeInfo sema_aoMI src_aoMJ) (NodeInfo sema_aoMI src'_aoSW) src_aoMJ src'_aoSW
- Language.Haskell.Tools.AST.Stmts: BindStmt :: Ann Pattern dom stage -> Ann expr dom stage -> Stmt' expr dom stage
- Language.Haskell.Tools.AST.Stmts: CompStmt :: Ann Stmt dom stage -> CompStmt dom stage
- Language.Haskell.Tools.AST.Stmts: ExprStmt :: Ann expr dom stage -> Stmt' expr dom stage
- Language.Haskell.Tools.AST.Stmts: GroupStmt :: AnnMaybe Expr dom stage -> AnnMaybe Expr dom stage -> CompStmt dom stage
- Language.Haskell.Tools.AST.Stmts: LetStmt :: AnnList LocalBind dom stage -> Stmt' expr dom stage
- Language.Haskell.Tools.AST.Stmts: ListCompBody :: AnnList CompStmt dom stage -> ListCompBody dom stage
- Language.Haskell.Tools.AST.Stmts: RecStmt :: AnnList (Stmt' expr) dom stage -> Stmt' expr dom stage
- Language.Haskell.Tools.AST.Stmts: ThenStmt :: Ann Expr dom stage -> AnnMaybe Expr dom stage -> CompStmt dom stage
- Language.Haskell.Tools.AST.Stmts: [_byExpr] :: CompStmt dom stage -> AnnMaybe Expr dom stage
- Language.Haskell.Tools.AST.Stmts: [_cmdStmtBinds] :: Stmt' expr dom stage -> AnnList (Stmt' expr) dom stage
- Language.Haskell.Tools.AST.Stmts: [_compStmt] :: CompStmt dom stage -> Ann Stmt dom stage
- Language.Haskell.Tools.AST.Stmts: [_compStmts] :: ListCompBody dom stage -> AnnList CompStmt dom stage
- Language.Haskell.Tools.AST.Stmts: [_stmtBinds] :: Stmt' expr dom stage -> AnnList LocalBind dom stage
- Language.Haskell.Tools.AST.Stmts: [_stmtExpr] :: Stmt' expr dom stage -> Ann expr dom stage
- Language.Haskell.Tools.AST.Stmts: [_stmtPattern] :: Stmt' expr dom stage -> Ann Pattern dom stage
- Language.Haskell.Tools.AST.Stmts: [_thenExpr] :: CompStmt dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.Stmts: [_usingExpr] :: CompStmt dom stage -> AnnMaybe Expr dom stage
- Language.Haskell.Tools.AST.Stmts: data CompStmt dom stage
- Language.Haskell.Tools.AST.Stmts: data ListCompBody dom stage
- Language.Haskell.Tools.AST.Stmts: data Stmt' expr dom stage
- Language.Haskell.Tools.AST.Stmts: type Stmt = Stmt' Expr
- Language.Haskell.Tools.AST.TH: DeclsBracket :: AnnList Decl dom stage -> Bracket dom stage
- Language.Haskell.Tools.AST.TH: ExprBracket :: Ann Expr dom stage -> Bracket dom stage
- Language.Haskell.Tools.AST.TH: IdSplice :: Ann Name dom stage -> Splice dom stage
- Language.Haskell.Tools.AST.TH: ParenSplice :: Ann Expr dom stage -> Splice dom stage
- Language.Haskell.Tools.AST.TH: PatternBracket :: Ann Pattern dom stage -> Bracket dom stage
- Language.Haskell.Tools.AST.TH: QQString :: String -> QQString dom stage
- Language.Haskell.Tools.AST.TH: QuasiQuote :: Ann Name dom stage -> Ann QQString dom stage -> QuasiQuote dom stage
- Language.Haskell.Tools.AST.TH: TypeBracket :: Ann Type dom stage -> Bracket dom stage
- Language.Haskell.Tools.AST.TH: [_bracketDecl] :: Bracket dom stage -> AnnList Decl dom stage
- Language.Haskell.Tools.AST.TH: [_bracketExpr] :: Bracket dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.TH: [_bracketPattern] :: Bracket dom stage -> Ann Pattern dom stage
- Language.Haskell.Tools.AST.TH: [_bracketType] :: Bracket dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.TH: [_qqExprBody] :: QuasiQuote dom stage -> Ann QQString dom stage
- Language.Haskell.Tools.AST.TH: [_qqExprName] :: QuasiQuote dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.TH: [_qqString] :: QQString dom stage -> String
- Language.Haskell.Tools.AST.TH: [_spliceExpr] :: Splice dom stage -> Ann Expr dom stage
- Language.Haskell.Tools.AST.TH: [_spliceId] :: Splice dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.TH: data Bracket dom stage
- Language.Haskell.Tools.AST.TH: data QQString dom stage
- Language.Haskell.Tools.AST.TH: data QuasiQuote dom stage
- Language.Haskell.Tools.AST.TH: data Splice dom stage
- Language.Haskell.Tools.AST.TH.SemanticTraversal: createInstance :: Name -> [TyVarBndr] -> [Con] -> Q [Dec]
- Language.Haskell.Tools.AST.TH.SemanticTraversal: deriveSemanticTraversal :: Name -> Q [Dec]
- Language.Haskell.Tools.AST.TH.SemanticTraversal: thExamine :: Q [Dec] -> Q [Dec]
- Language.Haskell.Tools.AST.TH.SourceInfoTraversal: createInstance :: Name -> [TyVarBndr] -> [Con] -> Q [Dec]
- Language.Haskell.Tools.AST.TH.SourceInfoTraversal: deriveSourceInfoTraversal :: Name -> Q [Dec]
- Language.Haskell.Tools.AST.TH.SourceInfoTraversal: thExamine :: Q [Dec] -> Q [Dec]
- Language.Haskell.Tools.AST.Types: ClassAssert :: Ann Name dom stage -> AnnList Type dom stage -> Assertion dom stage
- Language.Haskell.Tools.AST.Types: ContextMulti :: AnnList Assertion dom stage -> Context dom stage
- Language.Haskell.Tools.AST.Types: ContextOne :: Ann Assertion dom stage -> Context dom stage
- Language.Haskell.Tools.AST.Types: ImplicitAssert :: Ann Name dom stage -> Ann Type dom stage -> Assertion dom stage
- Language.Haskell.Tools.AST.Types: InfixAssert :: Ann Type dom stage -> Ann Operator dom stage -> Ann Type dom stage -> Assertion dom stage
- Language.Haskell.Tools.AST.Types: TyApp :: Ann Type dom stage -> Ann Type dom stage -> Type dom stage
- Language.Haskell.Tools.AST.Types: TyBang :: Ann Type dom stage -> Type dom stage
- Language.Haskell.Tools.AST.Types: TyCtx :: Ann Context dom stage -> Ann Type dom stage -> Type dom stage
- Language.Haskell.Tools.AST.Types: TyForall :: AnnList TyVar dom stage -> Ann Type dom stage -> Type dom stage
- Language.Haskell.Tools.AST.Types: TyFun :: Ann Type dom stage -> Ann Type dom stage -> Type dom stage
- Language.Haskell.Tools.AST.Types: TyInfix :: Ann Type dom stage -> Ann Operator dom stage -> Ann Type dom stage -> Type dom stage
- Language.Haskell.Tools.AST.Types: TyKinded :: Ann Type dom stage -> Ann Kind dom stage -> Type dom stage
- Language.Haskell.Tools.AST.Types: TyLazy :: Ann Type dom stage -> Type dom stage
- Language.Haskell.Tools.AST.Types: TyList :: Ann Type dom stage -> Type dom stage
- Language.Haskell.Tools.AST.Types: TyNamedWildc :: Ann Name dom stage -> Type dom stage
- Language.Haskell.Tools.AST.Types: TyNoUnpack :: Ann Type dom stage -> Type dom stage
- Language.Haskell.Tools.AST.Types: TyParArray :: Ann Type dom stage -> Type dom stage
- Language.Haskell.Tools.AST.Types: TyParen :: Ann Type dom stage -> Type dom stage
- Language.Haskell.Tools.AST.Types: TyPromoted :: Ann (Promoted Type) dom stage -> Type dom stage
- Language.Haskell.Tools.AST.Types: TyQuasiQuote :: QuasiQuote dom stage -> Type dom stage
- Language.Haskell.Tools.AST.Types: TySplice :: Splice dom stage -> Type dom stage
- Language.Haskell.Tools.AST.Types: TyTuple :: AnnList Type dom stage -> Type dom stage
- Language.Haskell.Tools.AST.Types: TyUnbTuple :: AnnList Type dom stage -> Type dom stage
- Language.Haskell.Tools.AST.Types: TyUnpack :: Ann Type dom stage -> Type dom stage
- Language.Haskell.Tools.AST.Types: TyVar :: Ann Name dom stage -> Type dom stage
- Language.Haskell.Tools.AST.Types: TyVarDecl :: Ann Name dom stage -> AnnMaybe KindConstraint dom stage -> TyVar dom stage
- Language.Haskell.Tools.AST.Types: TyWildcard :: Type dom stage
- Language.Haskell.Tools.AST.Types: [_assertClsName] :: Assertion dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Types: [_assertImplType] :: Assertion dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Types: [_assertImplVar] :: Assertion dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Types: [_assertLhs] :: Assertion dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Types: [_assertOp] :: Assertion dom stage -> Ann Operator dom stage
- Language.Haskell.Tools.AST.Types: [_assertRhs] :: Assertion dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Types: [_assertTypes] :: Assertion dom stage -> AnnList Type dom stage
- Language.Haskell.Tools.AST.Types: [_contextAssertion] :: Context dom stage -> Ann Assertion dom stage
- Language.Haskell.Tools.AST.Types: [_contextAssertions] :: Context dom stage -> AnnList Assertion dom stage
- Language.Haskell.Tools.AST.Types: [_tpPromoted] :: Type dom stage -> Ann (Promoted Type) dom stage
- Language.Haskell.Tools.AST.Types: [_tsSplice] :: Type dom stage -> Splice dom stage
- Language.Haskell.Tools.AST.Types: [_tyVarKind] :: TyVar dom stage -> AnnMaybe KindConstraint dom stage
- Language.Haskell.Tools.AST.Types: [_tyVarName] :: TyVar dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Types: [_typeArg] :: Type dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Types: [_typeBounded] :: Type dom stage -> AnnList TyVar dom stage
- Language.Haskell.Tools.AST.Types: [_typeCon] :: Type dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Types: [_typeCtx] :: Type dom stage -> Ann Context dom stage
- Language.Haskell.Tools.AST.Types: [_typeElement] :: Type dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Types: [_typeElements] :: Type dom stage -> AnnList Type dom stage
- Language.Haskell.Tools.AST.Types: [_typeInner] :: Type dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Types: [_typeKind] :: Type dom stage -> Ann Kind dom stage
- Language.Haskell.Tools.AST.Types: [_typeLeft] :: Type dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Types: [_typeName] :: Type dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Types: [_typeOperator] :: Type dom stage -> Ann Operator dom stage
- Language.Haskell.Tools.AST.Types: [_typeParam] :: Type dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Types: [_typeQQ] :: Type dom stage -> QuasiQuote dom stage
- Language.Haskell.Tools.AST.Types: [_typeResult] :: Type dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Types: [_typeRight] :: Type dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Types: [_typeType] :: Type dom stage -> Ann Type dom stage
- Language.Haskell.Tools.AST.Types: [_typeWildcardName] :: Type dom stage -> Ann Name dom stage
- Language.Haskell.Tools.AST.Types: data Assertion dom stage
- Language.Haskell.Tools.AST.Types: data Context dom stage
- Language.Haskell.Tools.AST.Types: data TyVar dom stage
- Language.Haskell.Tools.AST.Types: data Type dom stage
- Language.Haskell.Tools.AST.Utils.GHCInstances: con_RSL :: Constr
- Language.Haskell.Tools.AST.Utils.GHCInstances: instance Data.Data.Data SrcLoc.RealSrcLoc
- Language.Haskell.Tools.AST.Utils.GHCInstances: instance Data.Data.Data SrcLoc.SrcLoc
- Language.Haskell.Tools.AST.Utils.GHCInstances: ty_RSL :: DataType
- Language.Haskell.Tools.AST.Utils.OrdSrcSpan: NoOrdSrcSpan :: FastString -> OrdSrcSpan
- Language.Haskell.Tools.AST.Utils.OrdSrcSpan: OrdSrcSpan :: RealSrcSpan -> OrdSrcSpan
- Language.Haskell.Tools.AST.Utils.OrdSrcSpan: data OrdSrcSpan
- Language.Haskell.Tools.AST.Utils.OrdSrcSpan: fromOrdSrcSpan :: OrdSrcSpan -> SrcSpan
- Language.Haskell.Tools.AST.Utils.OrdSrcSpan: instance GHC.Classes.Eq Language.Haskell.Tools.AST.Utils.OrdSrcSpan.OrdSrcSpan
- Language.Haskell.Tools.AST.Utils.OrdSrcSpan: instance GHC.Classes.Ord Language.Haskell.Tools.AST.Utils.OrdSrcSpan.OrdSrcSpan
- Language.Haskell.Tools.AST.Utils.OrdSrcSpan: instance GHC.Show.Show Language.Haskell.Tools.AST.Utils.OrdSrcSpan.OrdSrcSpan
- Language.Haskell.Tools.AST.Utils.OrdSrcSpan: ordSrcSpan :: SrcSpan -> OrdSrcSpan
+ Language.Haskell.Tools.AST.Ann: AnnListG :: NodeInfo (SemanticInfo dom (AnnListG elem)) (ListInfo stage) -> [Ann elem dom stage] -> AnnListG elem dom stage
+ Language.Haskell.Tools.AST.Ann: AnnMaybeG :: NodeInfo (SemanticInfo dom (AnnMaybeG elem)) (OptionalInfo stage) -> Maybe (Ann elem dom stage) -> AnnMaybeG elem dom stage
+ Language.Haskell.Tools.AST.Ann: NodeInfo :: sema -> src -> NodeInfo sema src
+ Language.Haskell.Tools.AST.Ann: [_semanticInfo] :: NodeInfo sema src -> sema
+ Language.Haskell.Tools.AST.Ann: [_sourceInfo] :: NodeInfo sema src -> src
+ Language.Haskell.Tools.AST.Ann: data AnnListG elem dom stage
+ Language.Haskell.Tools.AST.Ann: data AnnMaybeG elem dom stage
+ Language.Haskell.Tools.AST.Ann: data NodeInfo sema src
+ Language.Haskell.Tools.AST.Ann: instance (Data.Data.Data src, Data.Data.Data sema) => Data.Data.Data (Language.Haskell.Tools.AST.Ann.NodeInfo sema src)
+ Language.Haskell.Tools.AST.Ann: instance (GHC.Classes.Eq src, GHC.Classes.Eq sema) => GHC.Classes.Eq (Language.Haskell.Tools.AST.Ann.NodeInfo sema src)
+ Language.Haskell.Tools.AST.Ann: instance (GHC.Show.Show src, GHC.Show.Show sema) => GHC.Show.Show (Language.Haskell.Tools.AST.Ann.NodeInfo sema src)
+ Language.Haskell.Tools.AST.Ann: instance (Language.Haskell.Tools.AST.Ann.ApplySemaChange (Language.Haskell.Tools.AST.Ann.SemaInfoClassify e), Language.Haskell.Tools.AST.Ann.SemanticTraversal e) => Language.Haskell.Tools.AST.Ann.SemanticTraversal (Language.Haskell.Tools.AST.Ann.AnnListG e)
+ Language.Haskell.Tools.AST.Ann: instance (Language.Haskell.Tools.AST.Ann.ApplySemaChange (Language.Haskell.Tools.AST.Ann.SemaInfoClassify e), Language.Haskell.Tools.AST.Ann.SemanticTraversal e) => Language.Haskell.Tools.AST.Ann.SemanticTraversal (Language.Haskell.Tools.AST.Ann.AnnMaybeG e)
+ Language.Haskell.Tools.AST.Ann: instance Language.Haskell.Tools.AST.Ann.SourceInfo stage => Language.Haskell.Tools.AST.Ann.HasRange (Language.Haskell.Tools.AST.Ann.AnnListG elem dom stage)
+ Language.Haskell.Tools.AST.Ann: instance Language.Haskell.Tools.AST.Ann.SourceInfo stage => Language.Haskell.Tools.AST.Ann.HasRange (Language.Haskell.Tools.AST.Ann.AnnMaybeG elem dom stage)
+ Language.Haskell.Tools.AST.Ann: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal e => Language.Haskell.Tools.AST.Ann.SourceInfoTraversal (Language.Haskell.Tools.AST.Ann.AnnListG e)
+ Language.Haskell.Tools.AST.Ann: instance Language.Haskell.Tools.AST.Ann.SourceInfoTraversal e => Language.Haskell.Tools.AST.Ann.SourceInfoTraversal (Language.Haskell.Tools.AST.Ann.AnnMaybeG e)
+ Language.Haskell.Tools.AST.Ann: semanticInfo :: forall sema_axVC src_axVD sema'_azkb. Lens (NodeInfo sema_axVC src_axVD) (NodeInfo sema'_azkb src_axVD) sema_axVC sema'_azkb
+ Language.Haskell.Tools.AST.Ann: sourceInfo :: forall sema_axVC src_axVD src'_azke. Lens (NodeInfo sema_axVC src_axVD) (NodeInfo sema_axVC src'_azke) src_axVD src'_azke
+ Language.Haskell.Tools.AST.Helpers: class NamedElement elem
+ Language.Haskell.Tools.AST.Helpers: elementName :: NamedElement elem => Simple Traversal (Ann elem dom st) (Ann UQualifiedName dom st)
+ Language.Haskell.Tools.AST.Helpers: inScope :: Name -> Scope -> Bool
+ Language.Haskell.Tools.AST.Helpers: instance Language.Haskell.Tools.AST.Helpers.NamedElement Language.Haskell.Tools.AST.Representation.Binds.ULocalBind
+ Language.Haskell.Tools.AST.Helpers: instance Language.Haskell.Tools.AST.Helpers.NamedElement Language.Haskell.Tools.AST.Representation.Decls.UDecl
+ Language.Haskell.Tools.AST.References: exprBracket :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UBracket dom_aRlf stage_aRlg) (Ann UBracket dom_aRlf stage_aRlg)
+ Language.Haskell.Tools.AST.References: exprSplice :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann USplice dom_aRlf stage_aRlg) (Ann USplice dom_aRlf stage_aRlg)
+ Language.Haskell.Tools.AST.SemaInfoClasses: class HasSourceInfoInSema' si
+ Language.Haskell.Tools.AST.SemaInfoClasses: instance Language.Haskell.Tools.AST.SemaInfoClasses.HasDefiningInfo dom => Language.Haskell.Tools.AST.SemaInfoClasses.HasDefiningInfo' (Language.Haskell.Tools.AST.Ann.Ann Language.Haskell.Tools.AST.Representation.Names.UQualifiedName dom st)
+ Language.Haskell.Tools.AST.SemaInfoClasses: instance Language.Haskell.Tools.AST.SemaInfoClasses.HasFixityInfo dom => Language.Haskell.Tools.AST.SemaInfoClasses.HasFixityInfo' (Language.Haskell.Tools.AST.Ann.Ann Language.Haskell.Tools.AST.Representation.Names.UQualifiedName dom st)
+ Language.Haskell.Tools.AST.SemaInfoClasses: instance Language.Haskell.Tools.AST.SemaInfoClasses.HasIdInfo dom => Language.Haskell.Tools.AST.SemaInfoClasses.HasIdInfo' (Language.Haskell.Tools.AST.Ann.Ann Language.Haskell.Tools.AST.Representation.Names.UQualifiedName dom st)
+ Language.Haskell.Tools.AST.SemaInfoClasses: instance Language.Haskell.Tools.AST.SemaInfoClasses.HasImplicitFieldsInfo dom => Language.Haskell.Tools.AST.SemaInfoClasses.HasImplicitFieldsInfo' (Language.Haskell.Tools.AST.Ann.Ann Language.Haskell.Tools.AST.Representation.Exprs.UFieldWildcard dom st)
+ Language.Haskell.Tools.AST.SemaInfoClasses: instance Language.Haskell.Tools.AST.SemaInfoClasses.HasImportInfo dom => Language.Haskell.Tools.AST.SemaInfoClasses.HasImportInfo' (Language.Haskell.Tools.AST.Ann.Ann Language.Haskell.Tools.AST.Representation.Modules.UImportDecl dom st)
+ Language.Haskell.Tools.AST.SemaInfoClasses: instance Language.Haskell.Tools.AST.SemaInfoClasses.HasModuleInfo dom => Language.Haskell.Tools.AST.SemaInfoClasses.HasModuleInfo' (Language.Haskell.Tools.AST.Ann.Ann Language.Haskell.Tools.AST.Representation.Modules.UModule dom st)
+ Language.Haskell.Tools.AST.SemaInfoClasses: instance Language.Haskell.Tools.AST.SemaInfoClasses.HasNameInfo dom => Language.Haskell.Tools.AST.SemaInfoClasses.HasNameInfo' (Language.Haskell.Tools.AST.Ann.Ann Language.Haskell.Tools.AST.Representation.Names.UQualifiedName dom st)
+ Language.Haskell.Tools.AST.SemaInfoClasses: instance Language.Haskell.Tools.AST.SemaInfoClasses.HasScopeInfo dom => Language.Haskell.Tools.AST.SemaInfoClasses.HasScopeInfo' (Language.Haskell.Tools.AST.Ann.Ann Language.Haskell.Tools.AST.Representation.Exprs.UExpr dom st)
+ Language.Haskell.Tools.AST.SemaInfoClasses: instance Language.Haskell.Tools.AST.SemaInfoClasses.HasScopeInfo dom => Language.Haskell.Tools.AST.SemaInfoClasses.HasScopeInfo' (Language.Haskell.Tools.AST.Ann.Ann Language.Haskell.Tools.AST.Representation.Names.UQualifiedName dom st)
+ Language.Haskell.Tools.AST.SemaInfoClasses: instance Language.Haskell.Tools.AST.SemaInfoClasses.HasSourceInfoInSema' (Language.Haskell.Tools.AST.SemaInfoTypes.NameInfo n)
+ Language.Haskell.Tools.AST.SemaInfoClasses: semanticsSourceInfo :: HasSourceInfoInSema' si => si -> Maybe SrcSpan
+ Language.Haskell.Tools.AST.SemaInfoClasses: type HasNoSemanticInfo dom si = SemanticInfo dom si ~ NoSemanticInfo
+ Language.Haskell.Tools.AST.SemaInfoTypes: instance Data.Foldable.Foldable Language.Haskell.Tools.AST.SemaInfoTypes.ImportInfo
+ Language.Haskell.Tools.AST.SemaInfoTypes: instance Data.Foldable.Foldable Language.Haskell.Tools.AST.SemaInfoTypes.ModuleInfo
+ Language.Haskell.Tools.AST.SemaInfoTypes: instance Data.Foldable.Foldable Language.Haskell.Tools.AST.SemaInfoTypes.NameInfo
+ Language.Haskell.Tools.AST.SemaInfoTypes: instance Data.Traversable.Traversable Language.Haskell.Tools.AST.SemaInfoTypes.ImportInfo
+ Language.Haskell.Tools.AST.SemaInfoTypes: instance Data.Traversable.Traversable Language.Haskell.Tools.AST.SemaInfoTypes.ModuleInfo
+ Language.Haskell.Tools.AST.SemaInfoTypes: instance Data.Traversable.Traversable Language.Haskell.Tools.AST.SemaInfoTypes.NameInfo
+ Language.Haskell.Tools.AST.SemaInfoTypes: instance GHC.Base.Functor Language.Haskell.Tools.AST.SemaInfoTypes.ImportInfo
+ Language.Haskell.Tools.AST.SemaInfoTypes: instance GHC.Base.Functor Language.Haskell.Tools.AST.SemaInfoTypes.ModuleInfo
+ Language.Haskell.Tools.AST.SemaInfoTypes: instance GHC.Base.Functor Language.Haskell.Tools.AST.SemaInfoTypes.NameInfo
+ Language.Haskell.Tools.AST.SemaInfoTypes: mkAmbiguousNameInfo :: Scope -> Bool -> RdrName -> SrcSpan -> NameInfo n
+ Language.Haskell.Tools.AST.SemaInfoTypes: mkCNameInfo :: Scope -> Bool -> Id -> Maybe Fixity -> CNameInfo
+ Language.Haskell.Tools.AST.SemaInfoTypes: mkImplicitFieldInfo :: [(Name, Name)] -> ImplicitFieldInfo
+ Language.Haskell.Tools.AST.SemaInfoTypes: mkImplicitNameInfo :: Scope -> Bool -> String -> SrcSpan -> NameInfo n
+ Language.Haskell.Tools.AST.SemaInfoTypes: mkImportInfo :: Module -> [n] -> [n] -> ImportInfo n
+ Language.Haskell.Tools.AST.SemaInfoTypes: mkModuleInfo :: Module -> Bool -> [n] -> ModuleInfo n
+ Language.Haskell.Tools.AST.SemaInfoTypes: mkNameInfo :: Scope -> Bool -> n -> NameInfo n
+ Language.Haskell.Tools.AST.SemaInfoTypes: mkNoSemanticInfo :: NoSemanticInfo
+ Language.Haskell.Tools.AST.SemaInfoTypes: mkScopeInfo :: Scope -> ScopeInfo
+ Language.Haskell.Tools.AST.SemaInfoTypes: nameLocation :: forall n_aldX. Partial (NameInfo n_aldX) (NameInfo n_aldX) SrcSpan SrcSpan
- Language.Haskell.Tools.AST.Ann: [_annListAnnot] :: AnnList elem dom stage -> NodeInfo (SemanticInfo dom (AnnList elem)) (ListInfo stage)
+ Language.Haskell.Tools.AST.Ann: [_annListAnnot] :: AnnListG elem dom stage -> NodeInfo (SemanticInfo dom (AnnListG elem)) (ListInfo stage)
- Language.Haskell.Tools.AST.Ann: [_annListElems] :: AnnList elem dom stage -> [Ann elem dom stage]
+ Language.Haskell.Tools.AST.Ann: [_annListElems] :: AnnListG elem dom stage -> [Ann elem dom stage]
- Language.Haskell.Tools.AST.Ann: [_annMaybeAnnot] :: AnnMaybe elem dom stage -> NodeInfo (SemanticInfo dom (AnnMaybe elem)) (OptionalInfo stage)
+ Language.Haskell.Tools.AST.Ann: [_annMaybeAnnot] :: AnnMaybeG elem dom stage -> NodeInfo (SemanticInfo dom (AnnMaybeG elem)) (OptionalInfo stage)
- Language.Haskell.Tools.AST.Ann: [_annMaybe] :: AnnMaybe elem dom stage -> Maybe (Ann elem dom stage)
+ Language.Haskell.Tools.AST.Ann: [_annMaybe] :: AnnMaybeG elem dom stage -> Maybe (Ann elem dom stage)
- Language.Haskell.Tools.AST.Ann: annJust :: Partial (AnnMaybe e d s) (AnnMaybe e d s) (Ann e d s) (Ann e d s)
+ Language.Haskell.Tools.AST.Ann: annJust :: Partial (AnnMaybeG e d s) (AnnMaybeG e d s) (Ann e d s) (Ann e d s)
- Language.Haskell.Tools.AST.Ann: annLength :: AnnList e d s -> Int
+ Language.Haskell.Tools.AST.Ann: annLength :: AnnListG e d s -> Int
- Language.Haskell.Tools.AST.Ann: annList :: Traversal (AnnList e d s) (AnnList e d s) (Ann e d s) (Ann e d s)
+ Language.Haskell.Tools.AST.Ann: annList :: Traversal (AnnListG e d s) (AnnListG e d s) (Ann e d s) (Ann e d s)
- Language.Haskell.Tools.AST.Ann: annListAnnot :: forall elem_ay7L dom_ay7M stage_ay7N. Lens (AnnList elem_ay7L dom_ay7M stage_ay7N) (AnnList elem_ay7L dom_ay7M stage_ay7N) (NodeInfo (SemanticInfo dom_ay7M (AnnList elem_ay7L)) (ListInfo stage_ay7N)) (NodeInfo (SemanticInfo dom_ay7M (AnnList elem_ay7L)) (ListInfo stage_ay7N))
+ Language.Haskell.Tools.AST.Ann: annListAnnot :: forall elem_azmU dom_azmV stage_azmW. Lens (AnnListG elem_azmU dom_azmV stage_azmW) (AnnListG elem_azmU dom_azmV stage_azmW) (NodeInfo (SemanticInfo dom_azmV (AnnListG elem_azmU)) (ListInfo stage_azmW)) (NodeInfo (SemanticInfo dom_azmV (AnnListG elem_azmU)) (ListInfo stage_azmW))
- Language.Haskell.Tools.AST.Ann: annListElems :: forall elem_ay7L dom_ay7M stage_ay7N. Lens (AnnList elem_ay7L dom_ay7M stage_ay7N) (AnnList elem_ay7L dom_ay7M stage_ay7N) [Ann elem_ay7L dom_ay7M stage_ay7N] [Ann elem_ay7L dom_ay7M stage_ay7N]
+ Language.Haskell.Tools.AST.Ann: annListElems :: forall elem_azmU dom_azmV stage_azmW. Lens (AnnListG elem_azmU dom_azmV stage_azmW) (AnnListG elem_azmU dom_azmV stage_azmW) [Ann elem_azmU dom_azmV stage_azmW] [Ann elem_azmU dom_azmV stage_azmW]
- Language.Haskell.Tools.AST.Ann: annMaybe :: forall elem_ayap dom_ayaq stage_ayar. Lens (AnnMaybe elem_ayap dom_ayaq stage_ayar) (AnnMaybe elem_ayap dom_ayaq stage_ayar) (Maybe (Ann elem_ayap dom_ayaq stage_ayar)) (Maybe (Ann elem_ayap dom_ayaq stage_ayar))
+ Language.Haskell.Tools.AST.Ann: annMaybe :: forall elem_azpy dom_azpz stage_azpA. Lens (AnnMaybeG elem_azpy dom_azpz stage_azpA) (AnnMaybeG elem_azpy dom_azpz stage_azpA) (Maybe (Ann elem_azpy dom_azpz stage_azpA)) (Maybe (Ann elem_azpy dom_azpz stage_azpA))
- Language.Haskell.Tools.AST.Ann: annMaybeAnnot :: forall elem_ayap dom_ayaq stage_ayar. Lens (AnnMaybe elem_ayap dom_ayaq stage_ayar) (AnnMaybe elem_ayap dom_ayaq stage_ayar) (NodeInfo (SemanticInfo dom_ayaq (AnnMaybe elem_ayap)) (OptionalInfo stage_ayar)) (NodeInfo (SemanticInfo dom_ayaq (AnnMaybe elem_ayap)) (OptionalInfo stage_ayar))
+ Language.Haskell.Tools.AST.Ann: annMaybeAnnot :: forall elem_azpy dom_azpz stage_azpA. Lens (AnnMaybeG elem_azpy dom_azpz stage_azpA) (AnnMaybeG elem_azpy dom_azpz stage_azpA) (NodeInfo (SemanticInfo dom_azpz (AnnMaybeG elem_azpy)) (OptionalInfo stage_azpA)) (NodeInfo (SemanticInfo dom_azpz (AnnMaybeG elem_azpy)) (OptionalInfo stage_azpA))
- Language.Haskell.Tools.AST.Ann: annNil :: NodeInfo (SemanticInfo d (AnnList e)) (ListInfo s) -> AnnList e d s
+ Language.Haskell.Tools.AST.Ann: annNil :: NodeInfo (SemanticInfo d (AnnListG e)) (ListInfo s) -> AnnListG e d s
- Language.Haskell.Tools.AST.Ann: annNothing :: NodeInfo (SemanticInfo d (AnnMaybe e)) (OptionalInfo s) -> AnnMaybe e d s
+ Language.Haskell.Tools.AST.Ann: annNothing :: NodeInfo (SemanticInfo d (AnnMaybeG e)) (OptionalInfo s) -> AnnMaybeG e d s
- Language.Haskell.Tools.AST.Ann: annotation :: forall elem_axyt dom_axyu stage_axyv. Lens (Ann elem_axyt dom_axyu stage_axyv) (Ann elem_axyt dom_axyu stage_axyv) (NodeInfo (SemanticInfo dom_axyu elem_axyt) (SpanInfo stage_axyv)) (NodeInfo (SemanticInfo dom_axyu elem_axyt) (SpanInfo stage_axyv))
+ Language.Haskell.Tools.AST.Ann: annotation :: forall elem_azkn dom_azko stage_azkp. Lens (Ann elem_azkn dom_azko stage_azkp) (Ann elem_azkn dom_azko stage_azkp) (NodeInfo (SemanticInfo dom_azko elem_azkn) (SpanInfo stage_azkp)) (NodeInfo (SemanticInfo dom_azko elem_azkn) (SpanInfo stage_azkp))
- Language.Haskell.Tools.AST.Ann: element :: forall elem_axyt dom_axyu stage_axyv. Lens (Ann elem_axyt dom_axyu stage_axyv) (Ann elem_axyt dom_axyu stage_axyv) (elem_axyt dom_axyu stage_axyv) (elem_axyt dom_axyu stage_axyv)
+ Language.Haskell.Tools.AST.Ann: element :: forall elem_azkn dom_azko stage_azkp. Lens (Ann elem_azkn dom_azko stage_azkp) (Ann elem_azkn dom_azko stage_azkp) (elem_azkn dom_azko stage_azkp) (elem_azkn dom_azko stage_azkp)
- Language.Haskell.Tools.AST.Ann: isAnnJust :: AnnMaybe e d s -> Bool
+ Language.Haskell.Tools.AST.Ann: isAnnJust :: AnnMaybeG e d s -> Bool
- Language.Haskell.Tools.AST.Ann: isAnnNothing :: AnnMaybe e d s -> Bool
+ Language.Haskell.Tools.AST.Ann: isAnnNothing :: AnnMaybeG e d s -> Bool
- Language.Haskell.Tools.AST.Helpers: bindingName :: (SemanticInfo dom QualifiedName ~ ni) => Simple Traversal (Ann ValueBind dom stage) ni
+ Language.Haskell.Tools.AST.Helpers: bindingName :: (SemanticInfo dom UQualifiedName ~ ni) => Simple Traversal (Ann UValueBind dom stage) (Ann UQualifiedName dom stage)
- Language.Haskell.Tools.AST.Helpers: declHeadNames :: Simple Traversal (Ann DeclHead dom stage) (Ann QualifiedName dom stage)
+ Language.Haskell.Tools.AST.Helpers: declHeadNames :: Simple Traversal (Ann UDeclHead dom stage) (Ann UQualifiedName dom stage)
- Language.Haskell.Tools.AST.Helpers: importIsExact :: ImportDecl dom stage -> Bool
+ Language.Haskell.Tools.AST.Helpers: importIsExact :: Ann UImportDecl dom stage -> Bool
- Language.Haskell.Tools.AST.Helpers: typeParams :: Simple Traversal (Ann Type dom stage) (Ann Type dom stage)
+ Language.Haskell.Tools.AST.Helpers: typeParams :: Simple Traversal (Ann UType dom stage) (Ann UType dom stage)
- Language.Haskell.Tools.AST.References: allDerived :: forall dom_aUoO stage_aUoP. Partial (Deriving dom_aUoO stage_aUoP) (Deriving dom_aUoO stage_aUoP) (AnnList InstanceHead dom_aUoO stage_aUoP) (AnnList InstanceHead dom_aUoO stage_aUoP)
+ Language.Haskell.Tools.AST.References: allDerived :: forall dom_aVJr stage_aVJs. Partial (Ann UDeriving dom_aVJr stage_aVJs) (Ann UDeriving dom_aVJr stage_aVJs) (AnnListG UInstanceHead dom_aVJr stage_aVJs) (AnnListG UInstanceHead dom_aVJr stage_aVJs)
- Language.Haskell.Tools.AST.References: altBinds :: forall expr_aPfG dom_aPfH stage_aPfI. Lens (Alt' expr_aPfG dom_aPfH stage_aPfI) (Alt' expr_aPfG dom_aPfH stage_aPfI) (AnnMaybe LocalBinds dom_aPfH stage_aPfI) (AnnMaybe LocalBinds dom_aPfH stage_aPfI)
+ Language.Haskell.Tools.AST.References: altBinds :: forall expr_aRl6 dom_aRl7 stage_aRl8. Lens (Ann (UAlt' expr_aRl6) dom_aRl7 stage_aRl8) (Ann (UAlt' expr_aRl6) dom_aRl7 stage_aRl8) (AnnMaybeG ULocalBinds dom_aRl7 stage_aRl8) (AnnMaybeG ULocalBinds dom_aRl7 stage_aRl8)
- Language.Haskell.Tools.AST.References: altPattern :: forall expr_aPfG dom_aPfH stage_aPfI. Lens (Alt' expr_aPfG dom_aPfH stage_aPfI) (Alt' expr_aPfG dom_aPfH stage_aPfI) (Ann Pattern dom_aPfH stage_aPfI) (Ann Pattern dom_aPfH stage_aPfI)
+ Language.Haskell.Tools.AST.References: altPattern :: forall expr_aRl6 dom_aRl7 stage_aRl8. Lens (Ann (UAlt' expr_aRl6) dom_aRl7 stage_aRl8) (Ann (UAlt' expr_aRl6) dom_aRl7 stage_aRl8) (Ann UPattern dom_aRl7 stage_aRl8) (Ann UPattern dom_aRl7 stage_aRl8)
- Language.Haskell.Tools.AST.References: altRhs :: forall expr_aPfG dom_aPfH stage_aPfI expr'_a59e4. Lens (Alt' expr_aPfG dom_aPfH stage_aPfI) (Alt' expr'_a59e4 dom_aPfH stage_aPfI) (Ann (CaseRhs' expr_aPfG) dom_aPfH stage_aPfI) (Ann (CaseRhs' expr'_a59e4) dom_aPfH stage_aPfI)
+ Language.Haskell.Tools.AST.References: altRhs :: forall expr_aRl6 dom_aRl7 stage_aRl8 expr'_a4y96. Lens (Ann (UAlt' expr_aRl6) dom_aRl7 stage_aRl8) (Ann (UAlt' expr_aRl6) dom_aRl7 stage_aRl8) (Ann (UCaseRhs' expr_aRl6) dom_aRl7 stage_aRl8) (Ann (UCaseRhs' expr_aRl6) dom_aRl7 stage_aRl8)
- Language.Haskell.Tools.AST.References: annotateExpr :: forall dom_aSpX stage_aSpY. Partial (TopLevelPragma dom_aSpX stage_aSpY) (TopLevelPragma dom_aSpX stage_aSpY) (Ann Expr dom_aSpX stage_aSpY) (Ann Expr dom_aSpX stage_aSpY)
+ Language.Haskell.Tools.AST.References: annotateExpr :: forall dom_aVJ3 stage_aVJ4. Partial (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann UExpr dom_aVJ3 stage_aVJ4) (Ann UExpr dom_aVJ3 stage_aVJ4)
- Language.Haskell.Tools.AST.References: annotateName :: forall dom_aSpT stage_aSpU dom'_a5a8d stage'_a5a8e. Partial (AnnotationSubject dom_aSpT stage_aSpU) (AnnotationSubject dom'_a5a8d stage'_a5a8e) (Ann Name dom_aSpT stage_aSpU) (Ann Name dom'_a5a8d stage'_a5a8e)
+ Language.Haskell.Tools.AST.References: annotateName :: forall dom_aVIZ stage_aVJ0 dom'_a4s8L stage'_a4s8M. Partial (Ann UAnnotationSubject dom_aVIZ stage_aVJ0) (Ann UAnnotationSubject dom_aVIZ stage_aVJ0) (Ann UName dom_aVIZ stage_aVJ0) (Ann UName dom_aVIZ stage_aVJ0)
- Language.Haskell.Tools.AST.References: annotationSubject :: forall dom_aSpX stage_aSpY. Partial (TopLevelPragma dom_aSpX stage_aSpY) (TopLevelPragma dom_aSpX stage_aSpY) (Ann AnnotationSubject dom_aSpX stage_aSpY) (Ann AnnotationSubject dom_aSpX stage_aSpY)
+ Language.Haskell.Tools.AST.References: annotationSubject :: forall dom_aVJ3 stage_aVJ4. Partial (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann UAnnotationSubject dom_aVJ3 stage_aVJ4) (Ann UAnnotationSubject dom_aVJ3 stage_aVJ4)
- Language.Haskell.Tools.AST.References: arrowAppl :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann ArrowAppl dom_aPfP stage_aPfQ) (Ann ArrowAppl dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: arrowAppl :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UArrowAppl dom_aRlf stage_aRlg) (Ann UArrowAppl dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: assertClsName :: forall dom_aMDE stage_aMDF. Partial (Assertion dom_aMDE stage_aMDF) (Assertion dom_aMDE stage_aMDF) (Ann Name dom_aMDE stage_aMDF) (Ann Name dom_aMDE stage_aMDF)
+ Language.Haskell.Tools.AST.References: assertClsName :: forall dom_aOHa stage_aOHb. Partial (Ann UAssertion dom_aOHa stage_aOHb) (Ann UAssertion dom_aOHa stage_aOHb) (Ann UName dom_aOHa stage_aOHb) (Ann UName dom_aOHa stage_aOHb)
- Language.Haskell.Tools.AST.References: assertImplType :: forall dom_aMDE stage_aMDF. Partial (Assertion dom_aMDE stage_aMDF) (Assertion dom_aMDE stage_aMDF) (Ann Type dom_aMDE stage_aMDF) (Ann Type dom_aMDE stage_aMDF)
+ Language.Haskell.Tools.AST.References: assertImplType :: forall dom_aOHa stage_aOHb. Partial (Ann UAssertion dom_aOHa stage_aOHb) (Ann UAssertion dom_aOHa stage_aOHb) (Ann UType dom_aOHa stage_aOHb) (Ann UType dom_aOHa stage_aOHb)
- Language.Haskell.Tools.AST.References: assertImplVar :: forall dom_aMDE stage_aMDF. Partial (Assertion dom_aMDE stage_aMDF) (Assertion dom_aMDE stage_aMDF) (Ann Name dom_aMDE stage_aMDF) (Ann Name dom_aMDE stage_aMDF)
+ Language.Haskell.Tools.AST.References: assertImplVar :: forall dom_aOHa stage_aOHb. Partial (Ann UAssertion dom_aOHa stage_aOHb) (Ann UAssertion dom_aOHa stage_aOHb) (Ann UName dom_aOHa stage_aOHb) (Ann UName dom_aOHa stage_aOHb)
- Language.Haskell.Tools.AST.References: assertLhs :: forall dom_aMDE stage_aMDF. Partial (Assertion dom_aMDE stage_aMDF) (Assertion dom_aMDE stage_aMDF) (Ann Type dom_aMDE stage_aMDF) (Ann Type dom_aMDE stage_aMDF)
+ Language.Haskell.Tools.AST.References: assertLhs :: forall dom_aOHa stage_aOHb. Partial (Ann UAssertion dom_aOHa stage_aOHb) (Ann UAssertion dom_aOHa stage_aOHb) (Ann UType dom_aOHa stage_aOHb) (Ann UType dom_aOHa stage_aOHb)
- Language.Haskell.Tools.AST.References: assertOp :: forall dom_aMDE stage_aMDF. Partial (Assertion dom_aMDE stage_aMDF) (Assertion dom_aMDE stage_aMDF) (Ann Operator dom_aMDE stage_aMDF) (Ann Operator dom_aMDE stage_aMDF)
+ Language.Haskell.Tools.AST.References: assertOp :: forall dom_aOHa stage_aOHb. Partial (Ann UAssertion dom_aOHa stage_aOHb) (Ann UAssertion dom_aOHa stage_aOHb) (Ann UOperator dom_aOHa stage_aOHb) (Ann UOperator dom_aOHa stage_aOHb)
- Language.Haskell.Tools.AST.References: assertRhs :: forall dom_aMDE stage_aMDF. Partial (Assertion dom_aMDE stage_aMDF) (Assertion dom_aMDE stage_aMDF) (Ann Type dom_aMDE stage_aMDF) (Ann Type dom_aMDE stage_aMDF)
+ Language.Haskell.Tools.AST.References: assertRhs :: forall dom_aOHa stage_aOHb. Partial (Ann UAssertion dom_aOHa stage_aOHb) (Ann UAssertion dom_aOHa stage_aOHb) (Ann UType dom_aOHa stage_aOHb) (Ann UType dom_aOHa stage_aOHb)
- Language.Haskell.Tools.AST.References: assertTypes :: forall dom_aMDE stage_aMDF. Partial (Assertion dom_aMDE stage_aMDF) (Assertion dom_aMDE stage_aMDF) (AnnList Type dom_aMDE stage_aMDF) (AnnList Type dom_aMDE stage_aMDF)
+ Language.Haskell.Tools.AST.References: assertTypes :: forall dom_aOHa stage_aOHb. Partial (Ann UAssertion dom_aOHa stage_aOHb) (Ann UAssertion dom_aOHa stage_aOHb) (AnnListG UType dom_aOHa stage_aOHb) (AnnListG UType dom_aOHa stage_aOHb)
- Language.Haskell.Tools.AST.References: bracketDecl :: forall dom_aZBW stage_aZBX. Partial (Bracket dom_aZBW stage_aZBX) (Bracket dom_aZBW stage_aZBX) (AnnList Decl dom_aZBW stage_aZBX) (AnnList Decl dom_aZBW stage_aZBX)
+ Language.Haskell.Tools.AST.References: bracketDecl :: forall dom_a12c1 stage_a12c2. Partial (Ann UBracket dom_a12c1 stage_a12c2) (Ann UBracket dom_a12c1 stage_a12c2) (AnnListG UDecl dom_a12c1 stage_a12c2) (AnnListG UDecl dom_a12c1 stage_a12c2)
- Language.Haskell.Tools.AST.References: bracketExpr :: forall dom_aZBW stage_aZBX. Partial (Bracket dom_aZBW stage_aZBX) (Bracket dom_aZBW stage_aZBX) (Ann Expr dom_aZBW stage_aZBX) (Ann Expr dom_aZBW stage_aZBX)
+ Language.Haskell.Tools.AST.References: bracketExpr :: forall dom_a12c1 stage_a12c2. Partial (Ann UBracket dom_a12c1 stage_a12c2) (Ann UBracket dom_a12c1 stage_a12c2) (Ann UExpr dom_a12c1 stage_a12c2) (Ann UExpr dom_a12c1 stage_a12c2)
- Language.Haskell.Tools.AST.References: bracketPattern :: forall dom_aZBW stage_aZBX. Partial (Bracket dom_aZBW stage_aZBX) (Bracket dom_aZBW stage_aZBX) (Ann Pattern dom_aZBW stage_aZBX) (Ann Pattern dom_aZBW stage_aZBX)
+ Language.Haskell.Tools.AST.References: bracketPattern :: forall dom_a12c1 stage_a12c2. Partial (Ann UBracket dom_a12c1 stage_a12c2) (Ann UBracket dom_a12c1 stage_a12c2) (Ann UPattern dom_a12c1 stage_a12c2) (Ann UPattern dom_a12c1 stage_a12c2)
- Language.Haskell.Tools.AST.References: bracketType :: forall dom_aZBW stage_aZBX. Partial (Bracket dom_aZBW stage_aZBX) (Bracket dom_aZBW stage_aZBX) (Ann Type dom_aZBW stage_aZBX) (Ann Type dom_aZBW stage_aZBX)
+ Language.Haskell.Tools.AST.References: bracketType :: forall dom_a12c1 stage_a12c2. Partial (Ann UBracket dom_a12c1 stage_a12c2) (Ann UBracket dom_a12c1 stage_a12c2) (Ann UType dom_a12c1 stage_a12c2) (Ann UType dom_a12c1 stage_a12c2)
- Language.Haskell.Tools.AST.References: byExpr :: forall dom_aOOz stage_aOOA. Partial (CompStmt dom_aOOz stage_aOOA) (CompStmt dom_aOOz stage_aOOA) (AnnMaybe Expr dom_aOOz stage_aOOA) (AnnMaybe Expr dom_aOOz stage_aOOA)
+ Language.Haskell.Tools.AST.References: byExpr :: forall dom_aQSh stage_aQSi. Partial (Ann UCompStmt dom_aQSh stage_aQSi) (Ann UCompStmt dom_aQSh stage_aQSi) (AnnMaybeG UExpr dom_aQSh stage_aQSi) (AnnMaybeG UExpr dom_aQSh stage_aQSi)
- Language.Haskell.Tools.AST.References: caseGuardExpr :: forall expr_aPfA dom_aPfB stage_aPfC expr'_a5aWb. Lens (GuardedCaseRhs' expr_aPfA dom_aPfB stage_aPfC) (GuardedCaseRhs' expr'_a5aWb dom_aPfB stage_aPfC) (Ann expr_aPfA dom_aPfB stage_aPfC) (Ann expr'_a5aWb dom_aPfB stage_aPfC)
+ Language.Haskell.Tools.AST.References: caseGuardExpr :: forall expr_aRl0 dom_aRl1 stage_aRl2 expr'_a4yu2. Lens (Ann (UGuardedCaseRhs' expr_aRl0) dom_aRl1 stage_aRl2) (Ann (UGuardedCaseRhs' expr_aRl0) dom_aRl1 stage_aRl2) (Ann expr_aRl0 dom_aRl1 stage_aRl2) (Ann expr_aRl0 dom_aRl1 stage_aRl2)
- Language.Haskell.Tools.AST.References: caseGuardStmts :: forall expr_aPfA dom_aPfB stage_aPfC. Lens (GuardedCaseRhs' expr_aPfA dom_aPfB stage_aPfC) (GuardedCaseRhs' expr_aPfA dom_aPfB stage_aPfC) (AnnList RhsGuard dom_aPfB stage_aPfC) (AnnList RhsGuard dom_aPfB stage_aPfC)
+ Language.Haskell.Tools.AST.References: caseGuardStmts :: forall expr_aRl0 dom_aRl1 stage_aRl2. Lens (Ann (UGuardedCaseRhs' expr_aRl0) dom_aRl1 stage_aRl2) (Ann (UGuardedCaseRhs' expr_aRl0) dom_aRl1 stage_aRl2) (AnnListG URhsGuard dom_aRl1 stage_aRl2) (AnnListG URhsGuard dom_aRl1 stage_aRl2)
- Language.Haskell.Tools.AST.References: cbElements :: forall dom_aUpa stage_aUpb dom'_a51Zh stage'_a51Zi. Lens (ClassBody dom_aUpa stage_aUpb) (ClassBody dom'_a51Zh stage'_a51Zi) (AnnList ClassElement dom_aUpa stage_aUpb) (AnnList ClassElement dom'_a51Zh stage'_a51Zi)
+ Language.Haskell.Tools.AST.References: cbElements :: forall dom_aVK1 stage_aVK2 dom'_a4phj stage'_a4phk. Lens (Ann UClassBody dom_aVK1 stage_aVK2) (Ann UClassBody dom_aVK1 stage_aVK2) (AnnListG UClassElement dom_aVK1 stage_aVK2) (AnnListG UClassElement dom_aVK1 stage_aVK2)
- Language.Haskell.Tools.AST.References: ceBind :: forall dom_aUp8 stage_aUp9. Partial (ClassElement dom_aUp8 stage_aUp9) (ClassElement dom_aUp8 stage_aUp9) (Ann ValueBind dom_aUp8 stage_aUp9) (Ann ValueBind dom_aUp8 stage_aUp9)
+ Language.Haskell.Tools.AST.References: ceBind :: forall dom_aVJZ stage_aVK0. Partial (Ann UClassElement dom_aVJZ stage_aVK0) (Ann UClassElement dom_aVJZ stage_aVK0) (Ann UValueBind dom_aVJZ stage_aVK0) (Ann UValueBind dom_aVJZ stage_aVK0)
- Language.Haskell.Tools.AST.References: ceHead :: forall dom_aUp8 stage_aUp9. Partial (ClassElement dom_aUp8 stage_aUp9) (ClassElement dom_aUp8 stage_aUp9) (Ann DeclHead dom_aUp8 stage_aUp9) (Ann DeclHead dom_aUp8 stage_aUp9)
+ Language.Haskell.Tools.AST.References: ceHead :: forall dom_aVJZ stage_aVK0. Partial (Ann UClassElement dom_aVJZ stage_aVK0) (Ann UClassElement dom_aVJZ stage_aVK0) (Ann UDeclHead dom_aVJZ stage_aVK0) (Ann UDeclHead dom_aVJZ stage_aVK0)
- Language.Haskell.Tools.AST.References: ceKind :: forall dom_aUp8 stage_aUp9. Partial (ClassElement dom_aUp8 stage_aUp9) (ClassElement dom_aUp8 stage_aUp9) (Ann Type dom_aUp8 stage_aUp9) (Ann Type dom_aUp8 stage_aUp9)
+ Language.Haskell.Tools.AST.References: ceKind :: forall dom_aVJZ stage_aVK0. Partial (Ann UClassElement dom_aVJZ stage_aVK0) (Ann UClassElement dom_aVJZ stage_aVK0) (Ann UType dom_aVJZ stage_aVK0) (Ann UType dom_aVJZ stage_aVK0)
- Language.Haskell.Tools.AST.References: ceName :: forall dom_aUp8 stage_aUp9. Partial (ClassElement dom_aUp8 stage_aUp9) (ClassElement dom_aUp8 stage_aUp9) (Ann Name dom_aUp8 stage_aUp9) (Ann Name dom_aUp8 stage_aUp9)
+ Language.Haskell.Tools.AST.References: ceName :: forall dom_aVJZ stage_aVK0. Partial (Ann UClassElement dom_aVJZ stage_aVK0) (Ann UClassElement dom_aVJZ stage_aVK0) (Ann UName dom_aVJZ stage_aVK0) (Ann UName dom_aVJZ stage_aVK0)
- Language.Haskell.Tools.AST.References: ceType :: forall dom_aUp8 stage_aUp9. Partial (ClassElement dom_aUp8 stage_aUp9) (ClassElement dom_aUp8 stage_aUp9) (Ann Type dom_aUp8 stage_aUp9) (Ann Type dom_aUp8 stage_aUp9)
+ Language.Haskell.Tools.AST.References: ceType :: forall dom_aVJZ stage_aVK0. Partial (Ann UClassElement dom_aVJZ stage_aVK0) (Ann UClassElement dom_aVJZ stage_aVK0) (Ann UType dom_aVJZ stage_aVK0) (Ann UType dom_aVJZ stage_aVK0)
- Language.Haskell.Tools.AST.References: ceTypeFam :: forall dom_aUp8 stage_aUp9. Partial (ClassElement dom_aUp8 stage_aUp9) (ClassElement dom_aUp8 stage_aUp9) (Ann TypeFamily dom_aUp8 stage_aUp9) (Ann TypeFamily dom_aUp8 stage_aUp9)
+ Language.Haskell.Tools.AST.References: ceTypeFam :: forall dom_aVJZ stage_aVK0. Partial (Ann UClassElement dom_aVJZ stage_aVK0) (Ann UClassElement dom_aVJZ stage_aVK0) (Ann UTypeFamily dom_aVJZ stage_aVK0) (Ann UTypeFamily dom_aVJZ stage_aVK0)
- Language.Haskell.Tools.AST.References: ceTypeSig :: forall dom_aUp8 stage_aUp9. Partial (ClassElement dom_aUp8 stage_aUp9) (ClassElement dom_aUp8 stage_aUp9) (Ann TypeSignature dom_aUp8 stage_aUp9) (Ann TypeSignature dom_aUp8 stage_aUp9)
+ Language.Haskell.Tools.AST.References: ceTypeSig :: forall dom_aVJZ stage_aVK0. Partial (Ann UClassElement dom_aVJZ stage_aVK0) (Ann UClassElement dom_aVJZ stage_aVK0) (Ann UTypeSignature dom_aVJZ stage_aVK0) (Ann UTypeSignature dom_aVJZ stage_aVK0)
- Language.Haskell.Tools.AST.References: charLitValue :: forall dom_aLGs stage_aLGt. Partial (Literal dom_aLGs stage_aLGt) (Literal dom_aLGs stage_aLGt) Char Char
+ Language.Haskell.Tools.AST.References: charLitValue :: forall dom_aNJY stage_aNJZ. Partial (Ann ULiteral dom_aNJY stage_aNJZ) (Ann ULiteral dom_aNJY stage_aNJZ) Char Char
- Language.Haskell.Tools.AST.References: cmdStmtBinds :: forall expr_aOOD dom_aOOE stage_aOOF. Partial (Stmt' expr_aOOD dom_aOOE stage_aOOF) (Stmt' expr_aOOD dom_aOOE stage_aOOF) (AnnList (Stmt' expr_aOOD) dom_aOOE stage_aOOF) (AnnList (Stmt' expr_aOOD) dom_aOOE stage_aOOF)
+ Language.Haskell.Tools.AST.References: cmdStmtBinds :: forall expr_aQSl dom_aQSm stage_aQSn. Partial (Ann (UStmt' expr_aQSl) dom_aQSm stage_aQSn) (Ann (UStmt' expr_aQSl) dom_aQSm stage_aQSn) (AnnListG (UStmt' expr_aQSl) dom_aQSm stage_aQSn) (AnnListG (UStmt' expr_aQSl) dom_aQSm stage_aQSn)
- Language.Haskell.Tools.AST.References: compBody :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (AnnList ListCompBody dom_aPfP stage_aPfQ) (AnnList ListCompBody dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: compBody :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (AnnListG UListCompBody dom_aRlf stage_aRlg) (AnnListG UListCompBody dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: compExpr :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: compExpr :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: compStmt :: forall dom_aOOz stage_aOOA. Partial (CompStmt dom_aOOz stage_aOOA) (CompStmt dom_aOOz stage_aOOA) (Ann Stmt dom_aOOz stage_aOOA) (Ann Stmt dom_aOOz stage_aOOA)
+ Language.Haskell.Tools.AST.References: compStmt :: forall dom_aQSh stage_aQSi. Partial (Ann UCompStmt dom_aQSh stage_aQSi) (Ann UCompStmt dom_aQSh stage_aQSi) (Ann UStmt dom_aQSh stage_aQSi) (Ann UStmt dom_aQSh stage_aQSi)
- Language.Haskell.Tools.AST.References: compStmts :: forall dom_aOOB stage_aOOC dom'_a5aHs stage'_a5aHt. Lens (ListCompBody dom_aOOB stage_aOOC) (ListCompBody dom'_a5aHs stage'_a5aHt) (AnnList CompStmt dom_aOOB stage_aOOC) (AnnList CompStmt dom'_a5aHs stage'_a5aHt)
+ Language.Haskell.Tools.AST.References: compStmts :: forall dom_aQSj stage_aQSk dom'_a4yMU stage'_a4yMV. Lens (Ann UListCompBody dom_aQSj stage_aQSk) (Ann UListCompBody dom_aQSj stage_aQSk) (AnnListG UCompStmt dom_aQSj stage_aQSk) (AnnListG UCompStmt dom_aQSj stage_aQSk)
- Language.Haskell.Tools.AST.References: conDeclArgs :: forall dom_aUoS stage_aUoT. Partial (ConDecl dom_aUoS stage_aUoT) (ConDecl dom_aUoS stage_aUoT) (AnnList Type dom_aUoS stage_aUoT) (AnnList Type dom_aUoS stage_aUoT)
+ Language.Haskell.Tools.AST.References: conDeclArgs :: forall dom_aVJv stage_aVJw. Partial (Ann UConDecl dom_aVJv stage_aVJw) (Ann UConDecl dom_aVJv stage_aVJw) (AnnListG UType dom_aVJv stage_aVJw) (AnnListG UType dom_aVJv stage_aVJw)
- Language.Haskell.Tools.AST.References: conDeclFields :: forall dom_aUoS stage_aUoT. Partial (ConDecl dom_aUoS stage_aUoT) (ConDecl dom_aUoS stage_aUoT) (AnnList FieldDecl dom_aUoS stage_aUoT) (AnnList FieldDecl dom_aUoS stage_aUoT)
+ Language.Haskell.Tools.AST.References: conDeclFields :: forall dom_aVJv stage_aVJw. Partial (Ann UConDecl dom_aVJv stage_aVJw) (Ann UConDecl dom_aVJv stage_aVJw) (AnnListG UFieldDecl dom_aVJv stage_aVJw) (AnnListG UFieldDecl dom_aVJv stage_aVJw)
- Language.Haskell.Tools.AST.References: conDeclLhs :: forall dom_aUoS stage_aUoT. Partial (ConDecl dom_aUoS stage_aUoT) (ConDecl dom_aUoS stage_aUoT) (Ann Type dom_aUoS stage_aUoT) (Ann Type dom_aUoS stage_aUoT)
+ Language.Haskell.Tools.AST.References: conDeclLhs :: forall dom_aVJv stage_aVJw. Partial (Ann UConDecl dom_aVJv stage_aVJw) (Ann UConDecl dom_aVJv stage_aVJw) (Ann UType dom_aVJv stage_aVJw) (Ann UType dom_aVJv stage_aVJw)
- Language.Haskell.Tools.AST.References: conDeclName :: forall dom_aUoS stage_aUoT. Partial (ConDecl dom_aUoS stage_aUoT) (ConDecl dom_aUoS stage_aUoT) (Ann Name dom_aUoS stage_aUoT) (Ann Name dom_aUoS stage_aUoT)
+ Language.Haskell.Tools.AST.References: conDeclName :: forall dom_aVJv stage_aVJw. Partial (Ann UConDecl dom_aVJv stage_aVJw) (Ann UConDecl dom_aVJv stage_aVJw) (Ann UName dom_aVJv stage_aVJw) (Ann UName dom_aVJv stage_aVJw)
- Language.Haskell.Tools.AST.References: conDeclOp :: forall dom_aUoS stage_aUoT. Partial (ConDecl dom_aUoS stage_aUoT) (ConDecl dom_aUoS stage_aUoT) (Ann Operator dom_aUoS stage_aUoT) (Ann Operator dom_aUoS stage_aUoT)
+ Language.Haskell.Tools.AST.References: conDeclOp :: forall dom_aVJv stage_aVJw. Partial (Ann UConDecl dom_aVJv stage_aVJw) (Ann UConDecl dom_aVJv stage_aVJw) (Ann UOperator dom_aVJv stage_aVJw) (Ann UOperator dom_aVJv stage_aVJw)
- Language.Haskell.Tools.AST.References: conDeclRhs :: forall dom_aUoS stage_aUoT. Partial (ConDecl dom_aUoS stage_aUoT) (ConDecl dom_aUoS stage_aUoT) (Ann Type dom_aUoS stage_aUoT) (Ann Type dom_aUoS stage_aUoT)
+ Language.Haskell.Tools.AST.References: conDeclRhs :: forall dom_aVJv stage_aVJw. Partial (Ann UConDecl dom_aVJv stage_aVJw) (Ann UConDecl dom_aVJv stage_aVJw) (Ann UType dom_aVJv stage_aVJw) (Ann UType dom_aVJv stage_aVJw)
- Language.Haskell.Tools.AST.References: contextAssertion :: forall dom_aMDG stage_aMDH. Partial (Context dom_aMDG stage_aMDH) (Context dom_aMDG stage_aMDH) (Ann Assertion dom_aMDG stage_aMDH) (Ann Assertion dom_aMDG stage_aMDH)
+ Language.Haskell.Tools.AST.References: contextAssertion :: forall dom_aOHc stage_aOHd. Partial (Ann UContext dom_aOHc stage_aOHd) (Ann UContext dom_aOHc stage_aOHd) (Ann UAssertion dom_aOHc stage_aOHd) (Ann UAssertion dom_aOHc stage_aOHd)
- Language.Haskell.Tools.AST.References: contextAssertions :: forall dom_aMDG stage_aMDH. Partial (Context dom_aMDG stage_aMDH) (Context dom_aMDG stage_aMDH) (AnnList Assertion dom_aMDG stage_aMDH) (AnnList Assertion dom_aMDG stage_aMDH)
+ Language.Haskell.Tools.AST.References: contextAssertions :: forall dom_aOHc stage_aOHd. Partial (Ann UContext dom_aOHc stage_aOHd) (Ann UContext dom_aOHc stage_aOHd) (AnnListG UAssertion dom_aOHc stage_aOHd) (AnnListG UAssertion dom_aOHc stage_aOHd)
- Language.Haskell.Tools.AST.References: declAssignedType :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (Ann Type dom_aUpi stage_aUpj) (Ann Type dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declAssignedType :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (Ann UType dom_aVK5 stage_aVK6) (Ann UType dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declBody :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (AnnMaybe ClassBody dom_aUpi stage_aUpj) (AnnMaybe ClassBody dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declBody :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (AnnMaybeG UClassBody dom_aVK5 stage_aVK6) (AnnMaybeG UClassBody dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declCallConv :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (Ann CallConv dom_aUpi stage_aUpj) (Ann CallConv dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declCallConv :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (Ann UCallConv dom_aVK5 stage_aVK6) (Ann UCallConv dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declCons :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (AnnList ConDecl dom_aUpi stage_aUpj) (AnnList ConDecl dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declCons :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (AnnListG UConDecl dom_aVK5 stage_aVK6) (AnnListG UConDecl dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declCtx :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (AnnMaybe Context dom_aUpi stage_aUpj) (AnnMaybe Context dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declCtx :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (AnnMaybeG UContext dom_aVK5 stage_aVK6) (AnnMaybeG UContext dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declDecl :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (AnnList TypeEqn dom_aUpi stage_aUpj) (AnnList TypeEqn dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declDecl :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (AnnListG UTypeEqn dom_aVK5 stage_aVK6) (AnnListG UTypeEqn dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declDeriving :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (AnnMaybe Deriving dom_aUpi stage_aUpj) (AnnMaybe Deriving dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declDeriving :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (AnnMaybeG UDeriving dom_aVK5 stage_aVK6) (AnnMaybeG UDeriving dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declFixity :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (Ann FixitySignature dom_aUpi stage_aUpj) (Ann FixitySignature dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declFixity :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (Ann UFixitySignature dom_aVK5 stage_aVK6) (Ann UFixitySignature dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declFunDeps :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (AnnMaybe FunDeps dom_aUpi stage_aUpj) (AnnMaybe FunDeps dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declFunDeps :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (AnnMaybeG UFunDeps dom_aVK5 stage_aVK6) (AnnMaybeG UFunDeps dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declGadt :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (AnnList GadtConDecl dom_aUpi stage_aUpj) (AnnList GadtConDecl dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declGadt :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (AnnListG UGadtConDecl dom_aVK5 stage_aVK6) (AnnListG UGadtConDecl dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declHead :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (Ann DeclHead dom_aUpi stage_aUpj) (Ann DeclHead dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declHead :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDeclHead dom_aVK5 stage_aVK6) (Ann UDeclHead dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declInstDecl :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (AnnMaybe InstBody dom_aUpi stage_aUpj) (AnnMaybe InstBody dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declInstDecl :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (AnnMaybeG UInstBody dom_aVK5 stage_aVK6) (AnnMaybeG UInstBody dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declInstRule :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (Ann InstanceRule dom_aUpi stage_aUpj) (Ann InstanceRule dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declInstRule :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (Ann UInstanceRule dom_aVK5 stage_aVK6) (Ann UInstanceRule dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declInstance :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (Ann InstanceRule dom_aUpi stage_aUpj) (Ann InstanceRule dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declInstance :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (Ann UInstanceRule dom_aVK5 stage_aVK6) (Ann UInstanceRule dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declKind :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (AnnMaybe KindConstraint dom_aUpi stage_aUpj) (AnnMaybe KindConstraint dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declKind :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (AnnMaybeG UKindConstraint dom_aVK5 stage_aVK6) (AnnMaybeG UKindConstraint dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declName :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (Ann Name dom_aUpi stage_aUpj) (Ann Name dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declName :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (Ann UName dom_aVK5 stage_aVK6) (Ann UName dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declNewtype :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (Ann DataOrNewtypeKeyword dom_aUpi stage_aUpj) (Ann DataOrNewtypeKeyword dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declNewtype :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDataOrNewtypeKeyword dom_aVK5 stage_aVK6) (Ann UDataOrNewtypeKeyword dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declOverlap :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (AnnMaybe OverlapPragma dom_aUpi stage_aUpj) (AnnMaybe OverlapPragma dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declOverlap :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (AnnMaybeG UOverlapPragma dom_aVK5 stage_aVK6) (AnnMaybeG UOverlapPragma dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declPatSyn :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (Ann PatternSynonym dom_aUpi stage_aUpj) (Ann PatternSynonym dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declPatSyn :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (Ann UPatternSynonym dom_aVK5 stage_aVK6) (Ann UPatternSynonym dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declPatTypeSig :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (Ann PatternTypeSignature dom_aUpi stage_aUpj) (Ann PatternTypeSignature dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declPatTypeSig :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (Ann UPatternTypeSignature dom_aVK5 stage_aVK6) (Ann UPatternTypeSignature dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declPragma :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (Ann TopLevelPragma dom_aUpi stage_aUpj) (Ann TopLevelPragma dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declPragma :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (Ann UTopLevelPragma dom_aVK5 stage_aVK6) (Ann UTopLevelPragma dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declRoleType :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (Ann QualifiedName dom_aUpi stage_aUpj) (Ann QualifiedName dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declRoleType :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (Ann UQualifiedName dom_aVK5 stage_aVK6) (Ann UQualifiedName dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declRoles :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (AnnList Role dom_aUpi stage_aUpj) (AnnList Role dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declRoles :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (AnnListG URole dom_aVK5 stage_aVK6) (AnnListG URole dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declSafety :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (AnnMaybe Safety dom_aUpi stage_aUpj) (AnnMaybe Safety dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declSafety :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (AnnMaybeG USafety dom_aVK5 stage_aVK6) (AnnMaybeG USafety dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declSplice :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (Ann Splice dom_aUpi stage_aUpj) (Ann Splice dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declSplice :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (Ann USplice dom_aVK5 stage_aVK6) (Ann USplice dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declType :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (Ann Type dom_aUpi stage_aUpj) (Ann Type dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declType :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (Ann UType dom_aVK5 stage_aVK6) (Ann UType dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declTypeFamily :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (Ann TypeFamily dom_aUpi stage_aUpj) (Ann TypeFamily dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declTypeFamily :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (Ann UTypeFamily dom_aVK5 stage_aVK6) (Ann UTypeFamily dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declTypeSig :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (Ann TypeSignature dom_aUpi stage_aUpj) (Ann TypeSignature dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declTypeSig :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (Ann UTypeSignature dom_aVK5 stage_aVK6) (Ann UTypeSignature dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declTypes :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (AnnList Type dom_aUpi stage_aUpj) (AnnList Type dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declTypes :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (AnnListG UType dom_aVK5 stage_aVK6) (AnnListG UType dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: declValBind :: forall dom_aUpi stage_aUpj. Partial (Decl dom_aUpi stage_aUpj) (Decl dom_aUpi stage_aUpj) (Ann ValueBind dom_aUpi stage_aUpj) (Ann ValueBind dom_aUpi stage_aUpj)
+ Language.Haskell.Tools.AST.References: declValBind :: forall dom_aVK5 stage_aVK6. Partial (Ann UDecl dom_aVK5 stage_aVK6) (Ann UDecl dom_aVK5 stage_aVK6) (Ann UValueBind dom_aVK5 stage_aVK6) (Ann UValueBind dom_aVK5 stage_aVK6)
- Language.Haskell.Tools.AST.References: dhAppFun :: forall dom_aUp6 stage_aUp7. Partial (DeclHead dom_aUp6 stage_aUp7) (DeclHead dom_aUp6 stage_aUp7) (Ann DeclHead dom_aUp6 stage_aUp7) (Ann DeclHead dom_aUp6 stage_aUp7)
+ Language.Haskell.Tools.AST.References: dhAppFun :: forall dom_aVK3 stage_aVK4. Partial (Ann UDeclHead dom_aVK3 stage_aVK4) (Ann UDeclHead dom_aVK3 stage_aVK4) (Ann UDeclHead dom_aVK3 stage_aVK4) (Ann UDeclHead dom_aVK3 stage_aVK4)
- Language.Haskell.Tools.AST.References: dhAppOperand :: forall dom_aUp6 stage_aUp7. Partial (DeclHead dom_aUp6 stage_aUp7) (DeclHead dom_aUp6 stage_aUp7) (Ann TyVar dom_aUp6 stage_aUp7) (Ann TyVar dom_aUp6 stage_aUp7)
+ Language.Haskell.Tools.AST.References: dhAppOperand :: forall dom_aVK3 stage_aVK4. Partial (Ann UDeclHead dom_aVK3 stage_aVK4) (Ann UDeclHead dom_aVK3 stage_aVK4) (Ann UTyVar dom_aVK3 stage_aVK4) (Ann UTyVar dom_aVK3 stage_aVK4)
- Language.Haskell.Tools.AST.References: dhBody :: forall dom_aUp6 stage_aUp7. Partial (DeclHead dom_aUp6 stage_aUp7) (DeclHead dom_aUp6 stage_aUp7) (Ann DeclHead dom_aUp6 stage_aUp7) (Ann DeclHead dom_aUp6 stage_aUp7)
+ Language.Haskell.Tools.AST.References: dhBody :: forall dom_aVK3 stage_aVK4. Partial (Ann UDeclHead dom_aVK3 stage_aVK4) (Ann UDeclHead dom_aVK3 stage_aVK4) (Ann UDeclHead dom_aVK3 stage_aVK4) (Ann UDeclHead dom_aVK3 stage_aVK4)
- Language.Haskell.Tools.AST.References: dhLeft :: forall dom_aUp6 stage_aUp7. Partial (DeclHead dom_aUp6 stage_aUp7) (DeclHead dom_aUp6 stage_aUp7) (Ann TyVar dom_aUp6 stage_aUp7) (Ann TyVar dom_aUp6 stage_aUp7)
+ Language.Haskell.Tools.AST.References: dhLeft :: forall dom_aVK3 stage_aVK4. Partial (Ann UDeclHead dom_aVK3 stage_aVK4) (Ann UDeclHead dom_aVK3 stage_aVK4) (Ann UTyVar dom_aVK3 stage_aVK4) (Ann UTyVar dom_aVK3 stage_aVK4)
- Language.Haskell.Tools.AST.References: dhName :: forall dom_aUp6 stage_aUp7. Partial (DeclHead dom_aUp6 stage_aUp7) (DeclHead dom_aUp6 stage_aUp7) (Ann Name dom_aUp6 stage_aUp7) (Ann Name dom_aUp6 stage_aUp7)
+ Language.Haskell.Tools.AST.References: dhName :: forall dom_aVK3 stage_aVK4. Partial (Ann UDeclHead dom_aVK3 stage_aVK4) (Ann UDeclHead dom_aVK3 stage_aVK4) (Ann UName dom_aVK3 stage_aVK4) (Ann UName dom_aVK3 stage_aVK4)
- Language.Haskell.Tools.AST.References: dhOperator :: forall dom_aUp6 stage_aUp7. Partial (DeclHead dom_aUp6 stage_aUp7) (DeclHead dom_aUp6 stage_aUp7) (Ann Operator dom_aUp6 stage_aUp7) (Ann Operator dom_aUp6 stage_aUp7)
+ Language.Haskell.Tools.AST.References: dhOperator :: forall dom_aVK3 stage_aVK4. Partial (Ann UDeclHead dom_aVK3 stage_aVK4) (Ann UDeclHead dom_aVK3 stage_aVK4) (Ann UOperator dom_aVK3 stage_aVK4) (Ann UOperator dom_aVK3 stage_aVK4)
- Language.Haskell.Tools.AST.References: dhRight :: forall dom_aUp6 stage_aUp7. Partial (DeclHead dom_aUp6 stage_aUp7) (DeclHead dom_aUp6 stage_aUp7) (Ann TyVar dom_aUp6 stage_aUp7) (Ann TyVar dom_aUp6 stage_aUp7)
+ Language.Haskell.Tools.AST.References: dhRight :: forall dom_aVK3 stage_aVK4. Partial (Ann UDeclHead dom_aVK3 stage_aVK4) (Ann UDeclHead dom_aVK3 stage_aVK4) (Ann UTyVar dom_aVK3 stage_aVK4) (Ann UTyVar dom_aVK3 stage_aVK4)
- Language.Haskell.Tools.AST.References: doKind :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann DoKind dom_aPfP stage_aPfQ) (Ann DoKind dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: doKind :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UDoKind dom_aRlf stage_aRlg) (Ann UDoKind dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: enumFrom :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: enumFrom :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: enumThen :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (AnnMaybe Expr dom_aPfP stage_aPfQ) (AnnMaybe Expr dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: enumThen :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (AnnMaybeG UExpr dom_aRlf stage_aRlg) (AnnMaybeG UExpr dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: enumTo :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (AnnMaybe Expr dom_aPfP stage_aPfQ) (AnnMaybe Expr dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: enumTo :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (AnnMaybeG UExpr dom_aRlf stage_aRlg) (AnnMaybeG UExpr dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: enumToFix :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: enumToFix :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: espExports :: forall dom_aYBr stage_aYBs dom'_a4ZSz stage'_a4ZSA. Lens (ExportSpecList dom_aYBr stage_aYBs) (ExportSpecList dom'_a4ZSz stage'_a4ZSA) (AnnList ExportSpec dom_aYBr stage_aYBs) (AnnList ExportSpec dom'_a4ZSz stage'_a4ZSA)
+ Language.Haskell.Tools.AST.References: espExports :: forall dom_a1187 stage_a1188 dom'_a4mTL stage'_a4mTM. Lens (Ann UExportSpecs dom_a1187 stage_a1188) (Ann UExportSpecs dom_a1187 stage_a1188) (AnnListG UExportSpec dom_a1187 stage_a1188) (AnnListG UExportSpec dom_a1187 stage_a1188)
- Language.Haskell.Tools.AST.References: essList :: forall dom_aYBl stage_aYBm dom'_a4ZYu stage'_a4ZYv. Partial (SubSpec dom_aYBl stage_aYBm) (SubSpec dom'_a4ZYu stage'_a4ZYv) (AnnList Name dom_aYBl stage_aYBm) (AnnList Name dom'_a4ZYu stage'_a4ZYv)
+ Language.Haskell.Tools.AST.References: essList :: forall dom_a1181 stage_a1182 dom'_a4n1b stage'_a4n1c. Partial (Ann USubSpec dom_a1181 stage_a1182) (Ann USubSpec dom_a1181 stage_a1182) (AnnListG UName dom_a1181 stage_a1182) (AnnListG UName dom_a1181 stage_a1182)
- Language.Haskell.Tools.AST.References: exportDecl :: forall dom_aYBp stage_aYBq. Partial (ExportSpec dom_aYBp stage_aYBq) (ExportSpec dom_aYBp stage_aYBq) (Ann IESpec dom_aYBp stage_aYBq) (Ann IESpec dom_aYBp stage_aYBq)
+ Language.Haskell.Tools.AST.References: exportDecl :: forall dom_a1185 stage_a1186. Partial (Ann UExportSpec dom_a1185 stage_a1186) (Ann UExportSpec dom_a1185 stage_a1186) (Ann UIESpec dom_a1185 stage_a1186) (Ann UIESpec dom_a1185 stage_a1186)
- Language.Haskell.Tools.AST.References: exportModuleName :: forall dom_aYBp stage_aYBq. Partial (ExportSpec dom_aYBp stage_aYBq) (ExportSpec dom_aYBp stage_aYBq) (Ann ModuleName dom_aYBp stage_aYBq) (Ann ModuleName dom_aYBp stage_aYBq)
+ Language.Haskell.Tools.AST.References: exportModuleName :: forall dom_a1185 stage_a1186. Partial (Ann UExportSpec dom_a1185 stage_a1186) (Ann UExportSpec dom_a1185 stage_a1186) (Ann UModuleName dom_a1185 stage_a1186) (Ann UModuleName dom_a1185 stage_a1186)
- Language.Haskell.Tools.AST.References: exprAlts :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (AnnList Alt dom_aPfP stage_aPfQ) (AnnList Alt dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprAlts :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (AnnListG UAlt dom_aRlf stage_aRlg) (AnnListG UAlt dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprArg :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprArg :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprBindings :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (AnnList Pattern dom_aPfP stage_aPfQ) (AnnList Pattern dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprBindings :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (AnnListG UPattern dom_aRlf stage_aRlg) (AnnListG UPattern dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprCase :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprCase :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprCond :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprCond :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprElse :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprElse :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprFun :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprFun :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprFunBind :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (AnnList LocalBind dom_aPfP stage_aPfQ) (AnnList LocalBind dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprFunBind :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (AnnListG ULocalBind dom_aRlf stage_aRlg) (AnnListG ULocalBind dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprIfAlts :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (AnnList GuardedCaseRhs dom_aPfP stage_aPfQ) (AnnList GuardedCaseRhs dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprIfAlts :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (AnnListG UGuardedCaseRhs dom_aRlf stage_aRlg) (AnnListG UGuardedCaseRhs dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprInner :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprInner :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprLhs :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprLhs :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprLit :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Literal dom_aPfP stage_aPfQ) (Ann Literal dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprLit :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann ULiteral dom_aRlf stage_aRlg) (Ann ULiteral dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprName :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Name dom_aPfP stage_aPfQ) (Ann Name dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprName :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UName dom_aRlf stage_aRlg) (Ann UName dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprOperator :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Operator dom_aPfP stage_aPfQ) (Ann Operator dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprOperator :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UOperator dom_aRlf stage_aRlg) (Ann UOperator dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprPragma :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann ExprPragma dom_aPfP stage_aPfQ) (Ann ExprPragma dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprPragma :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExprPragma dom_aRlf stage_aRlg) (Ann UExprPragma dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprQQ :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann QuasiQuote dom_aPfP stage_aPfQ) (Ann QuasiQuote dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprQQ :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UQuasiQuote dom_aRlf stage_aRlg) (Ann UQuasiQuote dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprRecFields :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (AnnList FieldUpdate dom_aPfP stage_aPfQ) (AnnList FieldUpdate dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprRecFields :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (AnnListG UFieldUpdate dom_aRlf stage_aRlg) (AnnListG UFieldUpdate dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprRecName :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Name dom_aPfP stage_aPfQ) (Ann Name dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprRecName :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UName dom_aRlf stage_aRlg) (Ann UName dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprRhs :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprRhs :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprSig :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Type dom_aPfP stage_aPfQ) (Ann Type dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprSig :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UType dom_aRlf stage_aRlg) (Ann UType dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprStmts :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (AnnList Stmt dom_aPfP stage_aPfQ) (AnnList Stmt dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprStmts :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (AnnListG UStmt dom_aRlf stage_aRlg) (AnnListG UStmt dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprThen :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ) (Ann Expr dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprThen :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: exprType :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Type dom_aPfP stage_aPfQ) (Ann Type dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: exprType :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UType dom_aRlf stage_aRlg) (Ann UType dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: fieldName :: forall dom_aPfN stage_aPfO. Partial (FieldUpdate dom_aPfN stage_aPfO) (FieldUpdate dom_aPfN stage_aPfO) (Ann Name dom_aPfN stage_aPfO) (Ann Name dom_aPfN stage_aPfO)
+ Language.Haskell.Tools.AST.References: fieldName :: forall dom_aRld stage_aRle. Partial (Ann UFieldUpdate dom_aRld stage_aRle) (Ann UFieldUpdate dom_aRld stage_aRle) (Ann UName dom_aRld stage_aRle) (Ann UName dom_aRld stage_aRle)
- Language.Haskell.Tools.AST.References: fieldNames :: forall dom_aUoQ stage_aUoR. Lens (FieldDecl dom_aUoQ stage_aUoR) (FieldDecl dom_aUoQ stage_aUoR) (AnnList Name dom_aUoQ stage_aUoR) (AnnList Name dom_aUoQ stage_aUoR)
+ Language.Haskell.Tools.AST.References: fieldNames :: forall dom_aVJt stage_aVJu. Lens (Ann UFieldDecl dom_aVJt stage_aVJu) (Ann UFieldDecl dom_aVJt stage_aVJu) (AnnListG UName dom_aVJt stage_aVJu) (AnnListG UName dom_aVJt stage_aVJu)
- Language.Haskell.Tools.AST.References: fieldPattern :: forall dom_aNUB stage_aNUC. Partial (PatternField dom_aNUB stage_aNUC) (PatternField dom_aNUB stage_aNUC) (Ann Pattern dom_aNUB stage_aNUC) (Ann Pattern dom_aNUB stage_aNUC)
+ Language.Haskell.Tools.AST.References: fieldPattern :: forall dom_aPYc stage_aPYd. Partial (Ann UPatternField dom_aPYc stage_aPYd) (Ann UPatternField dom_aPYc stage_aPYd) (Ann UPattern dom_aPYc stage_aPYd) (Ann UPattern dom_aPYc stage_aPYd)
- Language.Haskell.Tools.AST.References: fieldPatternName :: forall dom_aNUB stage_aNUC. Partial (PatternField dom_aNUB stage_aNUC) (PatternField dom_aNUB stage_aNUC) (Ann Name dom_aNUB stage_aNUC) (Ann Name dom_aNUB stage_aNUC)
+ Language.Haskell.Tools.AST.References: fieldPatternName :: forall dom_aPYc stage_aPYd. Partial (Ann UPatternField dom_aPYc stage_aPYd) (Ann UPatternField dom_aPYc stage_aPYd) (Ann UName dom_aPYc stage_aPYd) (Ann UName dom_aPYc stage_aPYd)
- Language.Haskell.Tools.AST.References: fieldPatternWildcard :: forall dom_aNUB stage_aNUC. Partial (PatternField dom_aNUB stage_aNUC) (PatternField dom_aNUB stage_aNUC) (Ann FieldWildcard dom_aNUB stage_aNUC) (Ann FieldWildcard dom_aNUB stage_aNUC)
+ Language.Haskell.Tools.AST.References: fieldPatternWildcard :: forall dom_aPYc stage_aPYd. Partial (Ann UPatternField dom_aPYc stage_aPYd) (Ann UPatternField dom_aPYc stage_aPYd) (Ann UFieldWildcard dom_aPYc stage_aPYd) (Ann UFieldWildcard dom_aPYc stage_aPYd)
- Language.Haskell.Tools.AST.References: fieldType :: forall dom_aUoQ stage_aUoR. Lens (FieldDecl dom_aUoQ stage_aUoR) (FieldDecl dom_aUoQ stage_aUoR) (Ann Type dom_aUoQ stage_aUoR) (Ann Type dom_aUoQ stage_aUoR)
+ Language.Haskell.Tools.AST.References: fieldType :: forall dom_aVJt stage_aVJu. Lens (Ann UFieldDecl dom_aVJt stage_aVJu) (Ann UFieldDecl dom_aVJt stage_aVJu) (Ann UType dom_aVJt stage_aVJu) (Ann UType dom_aVJt stage_aVJu)
- Language.Haskell.Tools.AST.References: fieldUpdateName :: forall dom_aPfN stage_aPfO. Partial (FieldUpdate dom_aPfN stage_aPfO) (FieldUpdate dom_aPfN stage_aPfO) (Ann Name dom_aPfN stage_aPfO) (Ann Name dom_aPfN stage_aPfO)
+ Language.Haskell.Tools.AST.References: fieldUpdateName :: forall dom_aRld stage_aRle. Partial (Ann UFieldUpdate dom_aRld stage_aRle) (Ann UFieldUpdate dom_aRld stage_aRle) (Ann UName dom_aRld stage_aRle) (Ann UName dom_aRld stage_aRle)
- Language.Haskell.Tools.AST.References: fieldValue :: forall dom_aPfN stage_aPfO. Partial (FieldUpdate dom_aPfN stage_aPfO) (FieldUpdate dom_aPfN stage_aPfO) (Ann Expr dom_aPfN stage_aPfO) (Ann Expr dom_aPfN stage_aPfO)
+ Language.Haskell.Tools.AST.References: fieldValue :: forall dom_aRld stage_aRle. Partial (Ann UFieldUpdate dom_aRld stage_aRle) (Ann UFieldUpdate dom_aRld stage_aRle) (Ann UExpr dom_aRld stage_aRle) (Ann UExpr dom_aRld stage_aRle)
- Language.Haskell.Tools.AST.References: fieldWildcard :: forall dom_aPfN stage_aPfO. Partial (FieldUpdate dom_aPfN stage_aPfO) (FieldUpdate dom_aPfN stage_aPfO) (Ann FieldWildcard dom_aPfN stage_aPfO) (Ann FieldWildcard dom_aPfN stage_aPfO)
+ Language.Haskell.Tools.AST.References: fieldWildcard :: forall dom_aRld stage_aRle. Partial (Ann UFieldUpdate dom_aRld stage_aRle) (Ann UFieldUpdate dom_aRld stage_aRle) (Ann UFieldWildcard dom_aRld stage_aRle) (Ann UFieldWildcard dom_aRld stage_aRle)
- Language.Haskell.Tools.AST.References: filePragmas :: forall dom_aYBv stage_aYBw. Lens (Module dom_aYBv stage_aYBw) (Module dom_aYBv stage_aYBw) (AnnList FilePragma dom_aYBv stage_aYBw) (AnnList FilePragma dom_aYBv stage_aYBw)
+ Language.Haskell.Tools.AST.References: filePragmas :: forall dom_a118b stage_a118c. Lens (Ann UModule dom_a118b stage_a118c) (Ann UModule dom_a118b stage_a118c) (AnnListG UFilePragma dom_a118b stage_a118c) (AnnListG UFilePragma dom_a118b stage_a118c)
- Language.Haskell.Tools.AST.References: fixityAssoc :: forall dom_aSq5 stage_aSq6. Lens (FixitySignature dom_aSq5 stage_aSq6) (FixitySignature dom_aSq5 stage_aSq6) (Ann Assoc dom_aSq5 stage_aSq6) (Ann Assoc dom_aSq5 stage_aSq6)
+ Language.Haskell.Tools.AST.References: fixityAssoc :: forall dom_aUz9 stage_aUza. Lens (Ann UFixitySignature dom_aUz9 stage_aUza) (Ann UFixitySignature dom_aUz9 stage_aUza) (Ann Assoc dom_aUz9 stage_aUza) (Ann Assoc dom_aUz9 stage_aUza)
- Language.Haskell.Tools.AST.References: fixityOperators :: forall dom_aSq5 stage_aSq6. Lens (FixitySignature dom_aSq5 stage_aSq6) (FixitySignature dom_aSq5 stage_aSq6) (AnnList Operator dom_aSq5 stage_aSq6) (AnnList Operator dom_aSq5 stage_aSq6)
+ Language.Haskell.Tools.AST.References: fixityOperators :: forall dom_aUz9 stage_aUza. Lens (Ann UFixitySignature dom_aUz9 stage_aUza) (Ann UFixitySignature dom_aUz9 stage_aUza) (AnnListG UOperator dom_aUz9 stage_aUza) (AnnListG UOperator dom_aUz9 stage_aUza)
- Language.Haskell.Tools.AST.References: fixityPrecedence :: forall dom_aSq5 stage_aSq6. Lens (FixitySignature dom_aSq5 stage_aSq6) (FixitySignature dom_aSq5 stage_aSq6) (Ann Precedence dom_aSq5 stage_aSq6) (Ann Precedence dom_aSq5 stage_aSq6)
+ Language.Haskell.Tools.AST.References: fixityPrecedence :: forall dom_aUz9 stage_aUza. Lens (Ann UFixitySignature dom_aUz9 stage_aUza) (Ann UFixitySignature dom_aUz9 stage_aUza) (Ann Precedence dom_aUz9 stage_aUza) (Ann Precedence dom_aUz9 stage_aUza)
- Language.Haskell.Tools.AST.References: floatLitValue :: forall dom_aLGs stage_aLGt. Partial (Literal dom_aLGs stage_aLGt) (Literal dom_aLGs stage_aLGt) Rational Rational
+ Language.Haskell.Tools.AST.References: floatLitValue :: forall dom_aNJY stage_aNJZ. Partial (Ann ULiteral dom_aNJY stage_aNJZ) (Ann ULiteral dom_aNJY stage_aNJZ) Rational Rational
- Language.Haskell.Tools.AST.References: fracLitValue :: forall dom_aLGs stage_aLGt. Partial (Literal dom_aLGs stage_aLGt) (Literal dom_aLGs stage_aLGt) Rational Rational
+ Language.Haskell.Tools.AST.References: fracLitValue :: forall dom_aNJY stage_aNJZ. Partial (Ann ULiteral dom_aNJY stage_aNJZ) (Ann ULiteral dom_aNJY stage_aNJZ) Rational Rational
- Language.Haskell.Tools.AST.References: funBindMatches :: forall dom_aSqh stage_aSqi. Partial (ValueBind dom_aSqh stage_aSqi) (ValueBind dom_aSqh stage_aSqi) (AnnList Match dom_aSqh stage_aSqi) (AnnList Match dom_aSqh stage_aSqi)
+ Language.Haskell.Tools.AST.References: funBindMatches :: forall dom_aUzl stage_aUzm. Partial (Ann UValueBind dom_aUzl stage_aUzm) (Ann UValueBind dom_aUzl stage_aUzm) (AnnListG UMatch dom_aUzl stage_aUzm) (AnnListG UMatch dom_aUzl stage_aUzm)
- Language.Haskell.Tools.AST.References: funDepLhs :: forall dom_aUoU stage_aUoV. Lens (FunDep dom_aUoU stage_aUoV) (FunDep dom_aUoU stage_aUoV) (AnnList Name dom_aUoU stage_aUoV) (AnnList Name dom_aUoU stage_aUoV)
+ Language.Haskell.Tools.AST.References: funDepLhs :: forall dom_aVJx stage_aVJy. Lens (Ann UFunDep dom_aVJx stage_aVJy) (Ann UFunDep dom_aVJx stage_aVJy) (AnnListG UName dom_aVJx stage_aVJy) (AnnListG UName dom_aVJx stage_aVJy)
- Language.Haskell.Tools.AST.References: funDepRhs :: forall dom_aUoU stage_aUoV. Lens (FunDep dom_aUoU stage_aUoV) (FunDep dom_aUoU stage_aUoV) (AnnList Name dom_aUoU stage_aUoV) (AnnList Name dom_aUoU stage_aUoV)
+ Language.Haskell.Tools.AST.References: funDepRhs :: forall dom_aVJx stage_aVJy. Lens (Ann UFunDep dom_aVJx stage_aVJy) (Ann UFunDep dom_aVJx stage_aVJy) (AnnListG UName dom_aVJx stage_aVJy) (AnnListG UName dom_aVJx stage_aVJy)
- Language.Haskell.Tools.AST.References: funDeps :: forall dom_aUoW stage_aUoX dom'_a52Wn stage'_a52Wo. Lens (FunDeps dom_aUoW stage_aUoX) (FunDeps dom'_a52Wn stage'_a52Wo) (AnnList FunDep dom_aUoW stage_aUoX) (AnnList FunDep dom'_a52Wn stage'_a52Wo)
+ Language.Haskell.Tools.AST.References: funDeps :: forall dom_aVJz stage_aVJA dom'_a4qMv stage'_a4qMw. Lens (Ann UFunDeps dom_aVJz stage_aVJA) (Ann UFunDeps dom_aVJz stage_aVJA) (AnnListG UFunDep dom_aVJz stage_aVJA) (AnnListG UFunDep dom_aVJz stage_aVJA)
- Language.Haskell.Tools.AST.References: gadtConNames :: forall dom_aUp0 stage_aUp1. Lens (GadtConDecl dom_aUp0 stage_aUp1) (GadtConDecl dom_aUp0 stage_aUp1) (AnnList Name dom_aUp0 stage_aUp1) (AnnList Name dom_aUp0 stage_aUp1)
+ Language.Haskell.Tools.AST.References: gadtConNames :: forall dom_aVJF stage_aVJG. Lens (Ann UGadtConDecl dom_aVJF stage_aVJG) (Ann UGadtConDecl dom_aVJF stage_aVJG) (AnnListG UName dom_aVJF stage_aVJG) (AnnListG UName dom_aVJF stage_aVJG)
- Language.Haskell.Tools.AST.References: gadtConNormalType :: forall dom_aUoY stage_aUoZ. Partial (GadtConType dom_aUoY stage_aUoZ) (GadtConType dom_aUoY stage_aUoZ) (Ann Type dom_aUoY stage_aUoZ) (Ann Type dom_aUoY stage_aUoZ)
+ Language.Haskell.Tools.AST.References: gadtConNormalType :: forall dom_aVJB stage_aVJC. Partial (Ann UGadtConType dom_aVJB stage_aVJC) (Ann UGadtConType dom_aVJB stage_aVJC) (Ann UType dom_aVJB stage_aVJC) (Ann UType dom_aVJB stage_aVJC)
- Language.Haskell.Tools.AST.References: gadtConRecordFields :: forall dom_aUoY stage_aUoZ. Partial (GadtConType dom_aUoY stage_aUoZ) (GadtConType dom_aUoY stage_aUoZ) (AnnList FieldDecl dom_aUoY stage_aUoZ) (AnnList FieldDecl dom_aUoY stage_aUoZ)
+ Language.Haskell.Tools.AST.References: gadtConRecordFields :: forall dom_aVJB stage_aVJC. Partial (Ann UGadtConType dom_aVJB stage_aVJC) (Ann UGadtConType dom_aVJB stage_aVJC) (AnnListG UFieldDecl dom_aVJB stage_aVJC) (AnnListG UFieldDecl dom_aVJB stage_aVJC)
- Language.Haskell.Tools.AST.References: gadtConResultType :: forall dom_aUoY stage_aUoZ. Partial (GadtConType dom_aUoY stage_aUoZ) (GadtConType dom_aUoY stage_aUoZ) (Ann Type dom_aUoY stage_aUoZ) (Ann Type dom_aUoY stage_aUoZ)
+ Language.Haskell.Tools.AST.References: gadtConResultType :: forall dom_aVJB stage_aVJC. Partial (Ann UGadtConType dom_aVJB stage_aVJC) (Ann UGadtConType dom_aVJB stage_aVJC) (Ann UType dom_aVJB stage_aVJC) (Ann UType dom_aVJB stage_aVJC)
- Language.Haskell.Tools.AST.References: gadtConType :: forall dom_aUp0 stage_aUp1. Lens (GadtConDecl dom_aUp0 stage_aUp1) (GadtConDecl dom_aUp0 stage_aUp1) (Ann GadtConType dom_aUp0 stage_aUp1) (Ann GadtConType dom_aUp0 stage_aUp1)
+ Language.Haskell.Tools.AST.References: gadtConType :: forall dom_aVJF stage_aVJG. Lens (Ann UGadtConDecl dom_aVJF stage_aVJG) (Ann UGadtConDecl dom_aVJF stage_aVJG) (Ann UGadtConType dom_aVJF stage_aVJG) (Ann UGadtConType dom_aVJF stage_aVJG)
- Language.Haskell.Tools.AST.References: guardBinds :: forall dom_aSpZ stage_aSq0. Partial (RhsGuard dom_aSpZ stage_aSq0) (RhsGuard dom_aSpZ stage_aSq0) (AnnList LocalBind dom_aSpZ stage_aSq0) (AnnList LocalBind dom_aSpZ stage_aSq0)
+ Language.Haskell.Tools.AST.References: guardBinds :: forall dom_aUyZ stage_aUz0. Partial (Ann URhsGuard dom_aUyZ stage_aUz0) (Ann URhsGuard dom_aUyZ stage_aUz0) (AnnListG ULocalBind dom_aUyZ stage_aUz0) (AnnListG ULocalBind dom_aUyZ stage_aUz0)
- Language.Haskell.Tools.AST.References: guardCheck :: forall dom_aSpZ stage_aSq0. Partial (RhsGuard dom_aSpZ stage_aSq0) (RhsGuard dom_aSpZ stage_aSq0) (Ann Expr dom_aSpZ stage_aSq0) (Ann Expr dom_aSpZ stage_aSq0)
+ Language.Haskell.Tools.AST.References: guardCheck :: forall dom_aUyZ stage_aUz0. Partial (Ann URhsGuard dom_aUyZ stage_aUz0) (Ann URhsGuard dom_aUyZ stage_aUz0) (Ann UExpr dom_aUyZ stage_aUz0) (Ann UExpr dom_aUyZ stage_aUz0)
- Language.Haskell.Tools.AST.References: guardExpr :: forall dom_aSq1 stage_aSq2. Lens (GuardedRhs dom_aSq1 stage_aSq2) (GuardedRhs dom_aSq1 stage_aSq2) (Ann Expr dom_aSq1 stage_aSq2) (Ann Expr dom_aSq1 stage_aSq2)
+ Language.Haskell.Tools.AST.References: guardExpr :: forall dom_aUz1 stage_aUz2. Lens (Ann UGuardedRhs dom_aUz1 stage_aUz2) (Ann UGuardedRhs dom_aUz1 stage_aUz2) (Ann UExpr dom_aUz1 stage_aUz2) (Ann UExpr dom_aUz1 stage_aUz2)
- Language.Haskell.Tools.AST.References: guardPat :: forall dom_aSpZ stage_aSq0. Partial (RhsGuard dom_aSpZ stage_aSq0) (RhsGuard dom_aSpZ stage_aSq0) (Ann Pattern dom_aSpZ stage_aSq0) (Ann Pattern dom_aSpZ stage_aSq0)
+ Language.Haskell.Tools.AST.References: guardPat :: forall dom_aUyZ stage_aUz0. Partial (Ann URhsGuard dom_aUyZ stage_aUz0) (Ann URhsGuard dom_aUyZ stage_aUz0) (Ann UPattern dom_aUyZ stage_aUz0) (Ann UPattern dom_aUyZ stage_aUz0)
- Language.Haskell.Tools.AST.References: guardRhs :: forall dom_aSpZ stage_aSq0. Partial (RhsGuard dom_aSpZ stage_aSq0) (RhsGuard dom_aSpZ stage_aSq0) (Ann Expr dom_aSpZ stage_aSq0) (Ann Expr dom_aSpZ stage_aSq0)
+ Language.Haskell.Tools.AST.References: guardRhs :: forall dom_aUyZ stage_aUz0. Partial (Ann URhsGuard dom_aUyZ stage_aUz0) (Ann URhsGuard dom_aUyZ stage_aUz0) (Ann UExpr dom_aUyZ stage_aUz0) (Ann UExpr dom_aUyZ stage_aUz0)
- Language.Haskell.Tools.AST.References: guardStmts :: forall dom_aSq1 stage_aSq2. Lens (GuardedRhs dom_aSq1 stage_aSq2) (GuardedRhs dom_aSq1 stage_aSq2) (AnnList RhsGuard dom_aSq1 stage_aSq2) (AnnList RhsGuard dom_aSq1 stage_aSq2)
+ Language.Haskell.Tools.AST.References: guardStmts :: forall dom_aUz1 stage_aUz2. Lens (Ann UGuardedRhs dom_aUz1 stage_aUz2) (Ann UGuardedRhs dom_aUz1 stage_aUz2) (AnnListG URhsGuard dom_aUz1 stage_aUz2) (AnnListG URhsGuard dom_aUz1 stage_aUz2)
- Language.Haskell.Tools.AST.References: ieName :: forall dom_aYBn stage_aYBo. Lens (IESpec dom_aYBn stage_aYBo) (IESpec dom_aYBn stage_aYBo) (Ann Name dom_aYBn stage_aYBo) (Ann Name dom_aYBn stage_aYBo)
+ Language.Haskell.Tools.AST.References: ieName :: forall dom_a1183 stage_a1184. Lens (Ann UIESpec dom_a1183 stage_a1184) (Ann UIESpec dom_a1183 stage_a1184) (Ann UName dom_a1183 stage_a1184) (Ann UName dom_a1183 stage_a1184)
- Language.Haskell.Tools.AST.References: ieSubspec :: forall dom_aYBn stage_aYBo. Lens (IESpec dom_aYBn stage_aYBo) (IESpec dom_aYBn stage_aYBo) (AnnMaybe SubSpec dom_aYBn stage_aYBo) (AnnMaybe SubSpec dom_aYBn stage_aYBo)
+ Language.Haskell.Tools.AST.References: ieSubspec :: forall dom_a1183 stage_a1184. Lens (Ann UIESpec dom_a1183 stage_a1184) (Ann UIESpec dom_a1183 stage_a1184) (AnnMaybeG USubSpec dom_a1183 stage_a1184) (AnnMaybeG USubSpec dom_a1183 stage_a1184)
- Language.Haskell.Tools.AST.References: ihConName :: forall dom_aUoK stage_aUoL. Partial (InstanceHead dom_aUoK stage_aUoL) (InstanceHead dom_aUoK stage_aUoL) (Ann Name dom_aUoK stage_aUoL) (Ann Name dom_aUoK stage_aUoL)
+ Language.Haskell.Tools.AST.References: ihConName :: forall dom_aVJV stage_aVJW. Partial (Ann UInstanceHead dom_aVJV stage_aVJW) (Ann UInstanceHead dom_aVJV stage_aVJW) (Ann UName dom_aVJV stage_aVJW) (Ann UName dom_aVJV stage_aVJW)
- Language.Haskell.Tools.AST.References: ihFun :: forall dom_aUoK stage_aUoL. Partial (InstanceHead dom_aUoK stage_aUoL) (InstanceHead dom_aUoK stage_aUoL) (Ann InstanceHead dom_aUoK stage_aUoL) (Ann InstanceHead dom_aUoK stage_aUoL)
+ Language.Haskell.Tools.AST.References: ihFun :: forall dom_aVJV stage_aVJW. Partial (Ann UInstanceHead dom_aVJV stage_aVJW) (Ann UInstanceHead dom_aVJV stage_aVJW) (Ann UInstanceHead dom_aVJV stage_aVJW) (Ann UInstanceHead dom_aVJV stage_aVJW)
- Language.Haskell.Tools.AST.References: ihHead :: forall dom_aUoK stage_aUoL. Partial (InstanceHead dom_aUoK stage_aUoL) (InstanceHead dom_aUoK stage_aUoL) (Ann InstanceHead dom_aUoK stage_aUoL) (Ann InstanceHead dom_aUoK stage_aUoL)
+ Language.Haskell.Tools.AST.References: ihHead :: forall dom_aVJV stage_aVJW. Partial (Ann UInstanceHead dom_aVJV stage_aVJW) (Ann UInstanceHead dom_aVJV stage_aVJW) (Ann UInstanceHead dom_aVJV stage_aVJW) (Ann UInstanceHead dom_aVJV stage_aVJW)
- Language.Haskell.Tools.AST.References: ihLeftOp :: forall dom_aUoK stage_aUoL. Partial (InstanceHead dom_aUoK stage_aUoL) (InstanceHead dom_aUoK stage_aUoL) (Ann Type dom_aUoK stage_aUoL) (Ann Type dom_aUoK stage_aUoL)
+ Language.Haskell.Tools.AST.References: ihLeftOp :: forall dom_aVJV stage_aVJW. Partial (Ann UInstanceHead dom_aVJV stage_aVJW) (Ann UInstanceHead dom_aVJV stage_aVJW) (Ann UType dom_aVJV stage_aVJW) (Ann UType dom_aVJV stage_aVJW)
- Language.Haskell.Tools.AST.References: ihOperator :: forall dom_aUoK stage_aUoL. Partial (InstanceHead dom_aUoK stage_aUoL) (InstanceHead dom_aUoK stage_aUoL) (Ann Name dom_aUoK stage_aUoL) (Ann Name dom_aUoK stage_aUoL)
+ Language.Haskell.Tools.AST.References: ihOperator :: forall dom_aVJV stage_aVJW. Partial (Ann UInstanceHead dom_aVJV stage_aVJW) (Ann UInstanceHead dom_aVJV stage_aVJW) (Ann UName dom_aVJV stage_aVJW) (Ann UName dom_aVJV stage_aVJW)
- Language.Haskell.Tools.AST.References: ihType :: forall dom_aUoK stage_aUoL. Partial (InstanceHead dom_aUoK stage_aUoL) (InstanceHead dom_aUoK stage_aUoL) (Ann Type dom_aUoK stage_aUoL) (Ann Type dom_aUoK stage_aUoL)
+ Language.Haskell.Tools.AST.References: ihType :: forall dom_aVJV stage_aVJW. Partial (Ann UInstanceHead dom_aVJV stage_aVJW) (Ann UInstanceHead dom_aVJV stage_aVJW) (Ann UType dom_aVJV stage_aVJW) (Ann UType dom_aVJV stage_aVJW)
- Language.Haskell.Tools.AST.References: importAs :: forall dom_aYBd stage_aYBe. Lens (ImportDecl dom_aYBd stage_aYBe) (ImportDecl dom_aYBd stage_aYBe) (AnnMaybe ImportRenaming dom_aYBd stage_aYBe) (AnnMaybe ImportRenaming dom_aYBd stage_aYBe)
+ Language.Haskell.Tools.AST.References: importAs :: forall dom_a117T stage_a117U. Lens (Ann UImportDecl dom_a117T stage_a117U) (Ann UImportDecl dom_a117T stage_a117U) (AnnMaybeG UImportRenaming dom_a117T stage_a117U) (AnnMaybeG UImportRenaming dom_a117T stage_a117U)
- Language.Haskell.Tools.AST.References: importModule :: forall dom_aYBd stage_aYBe. Lens (ImportDecl dom_aYBd stage_aYBe) (ImportDecl dom_aYBd stage_aYBe) (Ann ModuleName dom_aYBd stage_aYBe) (Ann ModuleName dom_aYBd stage_aYBe)
+ Language.Haskell.Tools.AST.References: importModule :: forall dom_a117T stage_a117U. Lens (Ann UImportDecl dom_a117T stage_a117U) (Ann UImportDecl dom_a117T stage_a117U) (Ann UModuleName dom_a117T stage_a117U) (Ann UModuleName dom_a117T stage_a117U)
- Language.Haskell.Tools.AST.References: importPkg :: forall dom_aYBd stage_aYBe. Lens (ImportDecl dom_aYBd stage_aYBe) (ImportDecl dom_aYBd stage_aYBe) (AnnMaybe StringNode dom_aYBd stage_aYBe) (AnnMaybe StringNode dom_aYBd stage_aYBe)
+ Language.Haskell.Tools.AST.References: importPkg :: forall dom_a117T stage_a117U. Lens (Ann UImportDecl dom_a117T stage_a117U) (Ann UImportDecl dom_a117T stage_a117U) (AnnMaybeG UStringNode dom_a117T stage_a117U) (AnnMaybeG UStringNode dom_a117T stage_a117U)
- Language.Haskell.Tools.AST.References: importQualified :: forall dom_aYBd stage_aYBe. Lens (ImportDecl dom_aYBd stage_aYBe) (ImportDecl dom_aYBd stage_aYBe) (AnnMaybe ImportQualified dom_aYBd stage_aYBe) (AnnMaybe ImportQualified dom_aYBd stage_aYBe)
+ Language.Haskell.Tools.AST.References: importQualified :: forall dom_a117T stage_a117U. Lens (Ann UImportDecl dom_a117T stage_a117U) (Ann UImportDecl dom_a117T stage_a117U) (AnnMaybeG UImportQualified dom_a117T stage_a117U) (AnnMaybeG UImportQualified dom_a117T stage_a117U)
- Language.Haskell.Tools.AST.References: importRename :: forall dom_aYB1 stage_aYB2 dom'_a50cB stage'_a50cC. Lens (ImportRenaming dom_aYB1 stage_aYB2) (ImportRenaming dom'_a50cB stage'_a50cC) (Ann ModuleName dom_aYB1 stage_aYB2) (Ann ModuleName dom'_a50cB stage'_a50cC)
+ Language.Haskell.Tools.AST.References: importRename :: forall dom_a117H stage_a117I dom'_a4niT stage'_a4niU. Lens (Ann UImportRenaming dom_a117H stage_a117I) (Ann UImportRenaming dom_a117H stage_a117I) (Ann UModuleName dom_a117H stage_a117I) (Ann UModuleName dom_a117H stage_a117I)
- Language.Haskell.Tools.AST.References: importSafe :: forall dom_aYBd stage_aYBe. Lens (ImportDecl dom_aYBd stage_aYBe) (ImportDecl dom_aYBd stage_aYBe) (AnnMaybe ImportSafe dom_aYBd stage_aYBe) (AnnMaybe ImportSafe dom_aYBd stage_aYBe)
+ Language.Haskell.Tools.AST.References: importSafe :: forall dom_a117T stage_a117U. Lens (Ann UImportDecl dom_a117T stage_a117U) (Ann UImportDecl dom_a117T stage_a117U) (AnnMaybeG UImportSafe dom_a117T stage_a117U) (AnnMaybeG UImportSafe dom_a117T stage_a117U)
- Language.Haskell.Tools.AST.References: importSource :: forall dom_aYBd stage_aYBe. Lens (ImportDecl dom_aYBd stage_aYBe) (ImportDecl dom_aYBd stage_aYBe) (AnnMaybe ImportSource dom_aYBd stage_aYBe) (AnnMaybe ImportSource dom_aYBd stage_aYBe)
+ Language.Haskell.Tools.AST.References: importSource :: forall dom_a117T stage_a117U. Lens (Ann UImportDecl dom_a117T stage_a117U) (Ann UImportDecl dom_a117T stage_a117U) (AnnMaybeG UImportSource dom_a117T stage_a117U) (AnnMaybeG UImportSource dom_a117T stage_a117U)
- Language.Haskell.Tools.AST.References: importSpec :: forall dom_aYBd stage_aYBe. Lens (ImportDecl dom_aYBd stage_aYBe) (ImportDecl dom_aYBd stage_aYBe) (AnnMaybe ImportSpec dom_aYBd stage_aYBe) (AnnMaybe ImportSpec dom_aYBd stage_aYBe)
+ Language.Haskell.Tools.AST.References: importSpec :: forall dom_a117T stage_a117U. Lens (Ann UImportDecl dom_a117T stage_a117U) (Ann UImportDecl dom_a117T stage_a117U) (AnnMaybeG UImportSpec dom_a117T stage_a117U) (AnnMaybeG UImportSpec dom_a117T stage_a117U)
- Language.Haskell.Tools.AST.References: importSpecHiding :: forall dom_aYBb stage_aYBc. Partial (ImportSpec dom_aYBb stage_aYBc) (ImportSpec dom_aYBb stage_aYBc) (AnnList IESpec dom_aYBb stage_aYBc) (AnnList IESpec dom_aYBb stage_aYBc)
+ Language.Haskell.Tools.AST.References: importSpecHiding :: forall dom_a117R stage_a117S. Partial (Ann UImportSpec dom_a117R stage_a117S) (Ann UImportSpec dom_a117R stage_a117S) (AnnListG UIESpec dom_a117R stage_a117S) (AnnListG UIESpec dom_a117R stage_a117S)
- Language.Haskell.Tools.AST.References: importSpecList :: forall dom_aYBb stage_aYBc. Partial (ImportSpec dom_aYBb stage_aYBc) (ImportSpec dom_aYBb stage_aYBc) (AnnList IESpec dom_aYBb stage_aYBc) (AnnList IESpec dom_aYBb stage_aYBc)
+ Language.Haskell.Tools.AST.References: importSpecList :: forall dom_a117R stage_a117S. Partial (Ann UImportSpec dom_a117R stage_a117S) (Ann UImportSpec dom_a117R stage_a117S) (AnnListG UIESpec dom_a117R stage_a117S) (AnnListG UIESpec dom_a117R stage_a117S)
- Language.Haskell.Tools.AST.References: injAnnDeps :: forall dom_aUpc stage_aUpd. Lens (InjectivityAnn dom_aUpc stage_aUpd) (InjectivityAnn dom_aUpc stage_aUpd) (AnnList Name dom_aUpc stage_aUpd) (AnnList Name dom_aUpc stage_aUpd)
+ Language.Haskell.Tools.AST.References: injAnnDeps :: forall dom_aVJJ stage_aVJK. Lens (Ann UInjectivityAnn dom_aVJJ stage_aVJK) (Ann UInjectivityAnn dom_aVJJ stage_aVJK) (AnnListG UName dom_aVJJ stage_aVJK) (AnnListG UName dom_aVJJ stage_aVJK)
- Language.Haskell.Tools.AST.References: injAnnRes :: forall dom_aUpc stage_aUpd. Lens (InjectivityAnn dom_aUpc stage_aUpd) (InjectivityAnn dom_aUpc stage_aUpd) (Ann Name dom_aUpc stage_aUpd) (Ann Name dom_aUpc stage_aUpd)
+ Language.Haskell.Tools.AST.References: injAnnRes :: forall dom_aVJJ stage_aVJK. Lens (Ann UInjectivityAnn dom_aVJJ stage_aVJK) (Ann UInjectivityAnn dom_aVJJ stage_aVJK) (Ann UName dom_aVJJ stage_aVJK) (Ann UName dom_aVJJ stage_aVJK)
- Language.Haskell.Tools.AST.References: inlinableDef :: forall dom_aSpX stage_aSpY. Partial (TopLevelPragma dom_aSpX stage_aSpY) (TopLevelPragma dom_aSpX stage_aSpY) (Ann Name dom_aSpX stage_aSpY) (Ann Name dom_aSpX stage_aSpY)
+ Language.Haskell.Tools.AST.References: inlinableDef :: forall dom_aVJ3 stage_aVJ4. Partial (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann UName dom_aVJ3 stage_aVJ4) (Ann UName dom_aVJ3 stage_aVJ4)
- Language.Haskell.Tools.AST.References: inlineDef :: forall dom_aSpX stage_aSpY. Partial (TopLevelPragma dom_aSpX stage_aSpY) (TopLevelPragma dom_aSpX stage_aSpY) (Ann Name dom_aSpX stage_aSpY) (Ann Name dom_aSpX stage_aSpY)
+ Language.Haskell.Tools.AST.References: inlineDef :: forall dom_aVJ3 stage_aVJ4. Partial (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann UName dom_aVJ3 stage_aVJ4) (Ann UName dom_aVJ3 stage_aVJ4)
- Language.Haskell.Tools.AST.References: innerExpr :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Splice dom_aPfP stage_aPfQ) (Ann Splice dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: innerExpr :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: instBodyDataCons :: forall dom_aUp2 stage_aUp3. Partial (InstBodyDecl dom_aUp2 stage_aUp3) (InstBodyDecl dom_aUp2 stage_aUp3) (AnnList ConDecl dom_aUp2 stage_aUp3) (AnnList ConDecl dom_aUp2 stage_aUp3)
+ Language.Haskell.Tools.AST.References: instBodyDataCons :: forall dom_aVJR stage_aVJS. Partial (Ann UInstBodyDecl dom_aVJR stage_aVJS) (Ann UInstBodyDecl dom_aVJR stage_aVJS) (AnnListG UConDecl dom_aVJR stage_aVJS) (AnnListG UConDecl dom_aVJR stage_aVJS)
- Language.Haskell.Tools.AST.References: instBodyDataKind :: forall dom_aUp2 stage_aUp3. Partial (InstBodyDecl dom_aUp2 stage_aUp3) (InstBodyDecl dom_aUp2 stage_aUp3) (AnnMaybe KindConstraint dom_aUp2 stage_aUp3) (AnnMaybe KindConstraint dom_aUp2 stage_aUp3)
+ Language.Haskell.Tools.AST.References: instBodyDataKind :: forall dom_aVJR stage_aVJS. Partial (Ann UInstBodyDecl dom_aVJR stage_aVJS) (Ann UInstBodyDecl dom_aVJR stage_aVJS) (AnnMaybeG UKindConstraint dom_aVJR stage_aVJS) (AnnMaybeG UKindConstraint dom_aVJR stage_aVJS)
- Language.Haskell.Tools.AST.References: instBodyDataNew :: forall dom_aUp2 stage_aUp3. Partial (InstBodyDecl dom_aUp2 stage_aUp3) (InstBodyDecl dom_aUp2 stage_aUp3) (Ann DataOrNewtypeKeyword dom_aUp2 stage_aUp3) (Ann DataOrNewtypeKeyword dom_aUp2 stage_aUp3)
+ Language.Haskell.Tools.AST.References: instBodyDataNew :: forall dom_aVJR stage_aVJS. Partial (Ann UInstBodyDecl dom_aVJR stage_aVJS) (Ann UInstBodyDecl dom_aVJR stage_aVJS) (Ann UDataOrNewtypeKeyword dom_aVJR stage_aVJS) (Ann UDataOrNewtypeKeyword dom_aVJR stage_aVJS)
- Language.Haskell.Tools.AST.References: instBodyDeclFunbind :: forall dom_aUp2 stage_aUp3. Partial (InstBodyDecl dom_aUp2 stage_aUp3) (InstBodyDecl dom_aUp2 stage_aUp3) (Ann ValueBind dom_aUp2 stage_aUp3) (Ann ValueBind dom_aUp2 stage_aUp3)
+ Language.Haskell.Tools.AST.References: instBodyDeclFunbind :: forall dom_aVJR stage_aVJS. Partial (Ann UInstBodyDecl dom_aVJR stage_aVJS) (Ann UInstBodyDecl dom_aVJR stage_aVJS) (Ann UValueBind dom_aVJR stage_aVJS) (Ann UValueBind dom_aVJR stage_aVJS)
- Language.Haskell.Tools.AST.References: instBodyDecls :: forall dom_aUp4 stage_aUp5 dom'_a52t0 stage'_a52t1. Lens (InstBody dom_aUp4 stage_aUp5) (InstBody dom'_a52t0 stage'_a52t1) (AnnList InstBodyDecl dom_aUp4 stage_aUp5) (AnnList InstBodyDecl dom'_a52t0 stage'_a52t1)
+ Language.Haskell.Tools.AST.References: instBodyDecls :: forall dom_aVJT stage_aVJU dom'_a4pNd stage'_a4pNe. Lens (Ann UInstBody dom_aVJT stage_aVJU) (Ann UInstBody dom_aVJT stage_aVJU) (AnnListG UInstBodyDecl dom_aVJT stage_aVJU) (AnnListG UInstBodyDecl dom_aVJT stage_aVJU)
- Language.Haskell.Tools.AST.References: instBodyDerivings :: forall dom_aUp2 stage_aUp3. Partial (InstBodyDecl dom_aUp2 stage_aUp3) (InstBodyDecl dom_aUp2 stage_aUp3) (AnnMaybe Deriving dom_aUp2 stage_aUp3) (AnnMaybe Deriving dom_aUp2 stage_aUp3)
+ Language.Haskell.Tools.AST.References: instBodyDerivings :: forall dom_aVJR stage_aVJS. Partial (Ann UInstBodyDecl dom_aVJR stage_aVJS) (Ann UInstBodyDecl dom_aVJR stage_aVJS) (AnnMaybeG UDeriving dom_aVJR stage_aVJS) (AnnMaybeG UDeriving dom_aVJR stage_aVJS)
- Language.Haskell.Tools.AST.References: instBodyGadtCons :: forall dom_aUp2 stage_aUp3. Partial (InstBodyDecl dom_aUp2 stage_aUp3) (InstBodyDecl dom_aUp2 stage_aUp3) (AnnList GadtConDecl dom_aUp2 stage_aUp3) (AnnList GadtConDecl dom_aUp2 stage_aUp3)
+ Language.Haskell.Tools.AST.References: instBodyGadtCons :: forall dom_aVJR stage_aVJS. Partial (Ann UInstBodyDecl dom_aVJR stage_aVJS) (Ann UInstBodyDecl dom_aVJR stage_aVJS) (AnnListG UGadtConDecl dom_aVJR stage_aVJS) (AnnListG UGadtConDecl dom_aVJR stage_aVJS)
- Language.Haskell.Tools.AST.References: instBodyLhsType :: forall dom_aUp2 stage_aUp3. Partial (InstBodyDecl dom_aUp2 stage_aUp3) (InstBodyDecl dom_aUp2 stage_aUp3) (Ann InstanceRule dom_aUp2 stage_aUp3) (Ann InstanceRule dom_aUp2 stage_aUp3)
+ Language.Haskell.Tools.AST.References: instBodyLhsType :: forall dom_aVJR stage_aVJS. Partial (Ann UInstBodyDecl dom_aVJR stage_aVJS) (Ann UInstBodyDecl dom_aVJR stage_aVJS) (Ann UInstanceRule dom_aVJR stage_aVJS) (Ann UInstanceRule dom_aVJR stage_aVJS)
- Language.Haskell.Tools.AST.References: instBodyTypeEqn :: forall dom_aUp2 stage_aUp3. Partial (InstBodyDecl dom_aUp2 stage_aUp3) (InstBodyDecl dom_aUp2 stage_aUp3) (Ann TypeEqn dom_aUp2 stage_aUp3) (Ann TypeEqn dom_aUp2 stage_aUp3)
+ Language.Haskell.Tools.AST.References: instBodyTypeEqn :: forall dom_aVJR stage_aVJS. Partial (Ann UInstBodyDecl dom_aVJR stage_aVJS) (Ann UInstBodyDecl dom_aVJR stage_aVJS) (Ann UTypeEqn dom_aVJR stage_aVJS) (Ann UTypeEqn dom_aVJR stage_aVJS)
- Language.Haskell.Tools.AST.References: instBodyTypeSig :: forall dom_aUp2 stage_aUp3. Partial (InstBodyDecl dom_aUp2 stage_aUp3) (InstBodyDecl dom_aUp2 stage_aUp3) (Ann TypeSignature dom_aUp2 stage_aUp3) (Ann TypeSignature dom_aUp2 stage_aUp3)
+ Language.Haskell.Tools.AST.References: instBodyTypeSig :: forall dom_aVJR stage_aVJS. Partial (Ann UInstBodyDecl dom_aVJR stage_aVJS) (Ann UInstBodyDecl dom_aVJR stage_aVJS) (Ann UTypeSignature dom_aVJR stage_aVJS) (Ann UTypeSignature dom_aVJR stage_aVJS)
- Language.Haskell.Tools.AST.References: intLitValue :: forall dom_aLGs stage_aLGt. Partial (Literal dom_aLGs stage_aLGt) (Literal dom_aLGs stage_aLGt) Integer Integer
+ Language.Haskell.Tools.AST.References: intLitValue :: forall dom_aNJY stage_aNJZ. Partial (Ann ULiteral dom_aNJY stage_aNJZ) (Ann ULiteral dom_aNJY stage_aNJZ) Integer Integer
- Language.Haskell.Tools.AST.References: irCtx :: forall dom_aUoM stage_aUoN. Partial (InstanceRule dom_aUoM stage_aUoN) (InstanceRule dom_aUoM stage_aUoN) (AnnMaybe Context dom_aUoM stage_aUoN) (AnnMaybe Context dom_aUoM stage_aUoN)
+ Language.Haskell.Tools.AST.References: irCtx :: forall dom_aVJX stage_aVJY. Lens (Ann UInstanceRule dom_aVJX stage_aVJY) (Ann UInstanceRule dom_aVJX stage_aVJY) (AnnMaybeG UContext dom_aVJX stage_aVJY) (AnnMaybeG UContext dom_aVJX stage_aVJY)
- Language.Haskell.Tools.AST.References: irHead :: forall dom_aUoM stage_aUoN. Partial (InstanceRule dom_aUoM stage_aUoN) (InstanceRule dom_aUoM stage_aUoN) (Ann InstanceHead dom_aUoM stage_aUoN) (Ann InstanceHead dom_aUoM stage_aUoN)
+ Language.Haskell.Tools.AST.References: irHead :: forall dom_aVJX stage_aVJY. Lens (Ann UInstanceRule dom_aVJX stage_aVJY) (Ann UInstanceRule dom_aVJX stage_aVJY) (Ann UInstanceHead dom_aVJX stage_aVJY) (Ann UInstanceHead dom_aVJX stage_aVJY)
- Language.Haskell.Tools.AST.References: irVars :: forall dom_aUoM stage_aUoN. Partial (InstanceRule dom_aUoM stage_aUoN) (InstanceRule dom_aUoM stage_aUoN) (AnnMaybe (AnnList TyVar) dom_aUoM stage_aUoN) (AnnMaybe (AnnList TyVar) dom_aUoM stage_aUoN)
+ Language.Haskell.Tools.AST.References: irVars :: forall dom_aVJX stage_aVJY. Lens (Ann UInstanceRule dom_aVJX stage_aVJY) (Ann UInstanceRule dom_aVJX stage_aVJY) (AnnMaybeG (AnnListG UTyVar) dom_aVJX stage_aVJY) (AnnMaybeG (AnnListG UTyVar) dom_aVJX stage_aVJY)
- Language.Haskell.Tools.AST.References: kindAppArg :: forall dom_aM2s stage_aM2t. Partial (Kind dom_aM2s stage_aM2t) (Kind dom_aM2s stage_aM2t) (Ann Kind dom_aM2s stage_aM2t) (Ann Kind dom_aM2s stage_aM2t)
+ Language.Haskell.Tools.AST.References: kindAppArg :: forall dom_aO5Y stage_aO5Z. Partial (Ann UKind dom_aO5Y stage_aO5Z) (Ann UKind dom_aO5Y stage_aO5Z) (Ann UKind dom_aO5Y stage_aO5Z) (Ann UKind dom_aO5Y stage_aO5Z)
- Language.Haskell.Tools.AST.References: kindAppFun :: forall dom_aM2s stage_aM2t. Partial (Kind dom_aM2s stage_aM2t) (Kind dom_aM2s stage_aM2t) (Ann Kind dom_aM2s stage_aM2t) (Ann Kind dom_aM2s stage_aM2t)
+ Language.Haskell.Tools.AST.References: kindAppFun :: forall dom_aO5Y stage_aO5Z. Partial (Ann UKind dom_aO5Y stage_aO5Z) (Ann UKind dom_aO5Y stage_aO5Z) (Ann UKind dom_aO5Y stage_aO5Z) (Ann UKind dom_aO5Y stage_aO5Z)
- Language.Haskell.Tools.AST.References: kindConstr :: forall dom_aM2u stage_aM2v dom'_a53vt stage'_a53vu. Lens (KindConstraint dom_aM2u stage_aM2v) (KindConstraint dom'_a53vt stage'_a53vu) (Ann Kind dom_aM2u stage_aM2v) (Ann Kind dom'_a53vt stage'_a53vu)
+ Language.Haskell.Tools.AST.References: kindConstr :: forall dom_aO60 stage_aO61 dom'_a4t3m stage'_a4t3n. Lens (Ann UKindConstraint dom_aO60 stage_aO61) (Ann UKindConstraint dom_aO60 stage_aO61) (Ann UKind dom_aO60 stage_aO61) (Ann UKind dom_aO60 stage_aO61)
- Language.Haskell.Tools.AST.References: kindElem :: forall dom_aM2s stage_aM2t. Partial (Kind dom_aM2s stage_aM2t) (Kind dom_aM2s stage_aM2t) (Ann Kind dom_aM2s stage_aM2t) (Ann Kind dom_aM2s stage_aM2t)
+ Language.Haskell.Tools.AST.References: kindElem :: forall dom_aO5Y stage_aO5Z. Partial (Ann UKind dom_aO5Y stage_aO5Z) (Ann UKind dom_aO5Y stage_aO5Z) (Ann UKind dom_aO5Y stage_aO5Z) (Ann UKind dom_aO5Y stage_aO5Z)
- Language.Haskell.Tools.AST.References: kindLeft :: forall dom_aM2s stage_aM2t. Partial (Kind dom_aM2s stage_aM2t) (Kind dom_aM2s stage_aM2t) (Ann Kind dom_aM2s stage_aM2t) (Ann Kind dom_aM2s stage_aM2t)
+ Language.Haskell.Tools.AST.References: kindLeft :: forall dom_aO5Y stage_aO5Z. Partial (Ann UKind dom_aO5Y stage_aO5Z) (Ann UKind dom_aO5Y stage_aO5Z) (Ann UKind dom_aO5Y stage_aO5Z) (Ann UKind dom_aO5Y stage_aO5Z)
- Language.Haskell.Tools.AST.References: kindParen :: forall dom_aM2s stage_aM2t. Partial (Kind dom_aM2s stage_aM2t) (Kind dom_aM2s stage_aM2t) (Ann Kind dom_aM2s stage_aM2t) (Ann Kind dom_aM2s stage_aM2t)
+ Language.Haskell.Tools.AST.References: kindParen :: forall dom_aO5Y stage_aO5Z. Partial (Ann UKind dom_aO5Y stage_aO5Z) (Ann UKind dom_aO5Y stage_aO5Z) (Ann UKind dom_aO5Y stage_aO5Z) (Ann UKind dom_aO5Y stage_aO5Z)
- Language.Haskell.Tools.AST.References: kindPromoted :: forall dom_aM2s stage_aM2t. Partial (Kind dom_aM2s stage_aM2t) (Kind dom_aM2s stage_aM2t) (Ann (Promoted Kind) dom_aM2s stage_aM2t) (Ann (Promoted Kind) dom_aM2s stage_aM2t)
+ Language.Haskell.Tools.AST.References: kindPromoted :: forall dom_aO5Y stage_aO5Z. Partial (Ann UKind dom_aO5Y stage_aO5Z) (Ann UKind dom_aO5Y stage_aO5Z) (Ann (UPromoted UKind) dom_aO5Y stage_aO5Z) (Ann (UPromoted UKind) dom_aO5Y stage_aO5Z)
- Language.Haskell.Tools.AST.References: kindRight :: forall dom_aM2s stage_aM2t. Partial (Kind dom_aM2s stage_aM2t) (Kind dom_aM2s stage_aM2t) (Ann Kind dom_aM2s stage_aM2t) (Ann Kind dom_aM2s stage_aM2t)
+ Language.Haskell.Tools.AST.References: kindRight :: forall dom_aO5Y stage_aO5Z. Partial (Ann UKind dom_aO5Y stage_aO5Z) (Ann UKind dom_aO5Y stage_aO5Z) (Ann UKind dom_aO5Y stage_aO5Z) (Ann UKind dom_aO5Y stage_aO5Z)
- Language.Haskell.Tools.AST.References: kindVar :: forall dom_aM2s stage_aM2t. Partial (Kind dom_aM2s stage_aM2t) (Kind dom_aM2s stage_aM2t) (Ann Name dom_aM2s stage_aM2t) (Ann Name dom_aM2s stage_aM2t)
+ Language.Haskell.Tools.AST.References: kindVar :: forall dom_aO5Y stage_aO5Z. Partial (Ann UKind dom_aO5Y stage_aO5Z) (Ann UKind dom_aO5Y stage_aO5Z) (Ann UName dom_aO5Y stage_aO5Z) (Ann UName dom_aO5Y stage_aO5Z)
- Language.Haskell.Tools.AST.References: langExt :: forall dom_aYBf stage_aYBg. Lens (LanguageExtension dom_aYBf stage_aYBg) (LanguageExtension dom_aYBf stage_aYBg) String String
+ Language.Haskell.Tools.AST.References: langExt :: forall dom_a117V stage_a117W. Lens (Ann ULanguageExtension dom_a117V stage_a117W) (Ann ULanguageExtension dom_a117V stage_a117W) String String
- Language.Haskell.Tools.AST.References: listElems :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (AnnList Expr dom_aPfP stage_aPfQ) (AnnList Expr dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: listElems :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (AnnListG UExpr dom_aRlf stage_aRlg) (AnnListG UExpr dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: localBinds :: forall dom_aSqb stage_aSqc dom'_a5aBT stage'_a5aBU. Lens (LocalBinds dom_aSqb stage_aSqc) (LocalBinds dom'_a5aBT stage'_a5aBU) (AnnList LocalBind dom_aSqb stage_aSqc) (AnnList LocalBind dom'_a5aBT stage'_a5aBU)
+ Language.Haskell.Tools.AST.References: localBinds :: forall dom_aUzf stage_aUzg dom'_a4sMa stage'_a4sMb. Lens (Ann ULocalBinds dom_aUzf stage_aUzg) (Ann ULocalBinds dom_aUzf stage_aUzg) (AnnListG ULocalBind dom_aUzf stage_aUzg) (AnnListG ULocalBind dom_aUzf stage_aUzg)
- Language.Haskell.Tools.AST.References: localFixity :: forall dom_aSq9 stage_aSqa. Partial (LocalBind dom_aSq9 stage_aSqa) (LocalBind dom_aSq9 stage_aSqa) (Ann FixitySignature dom_aSq9 stage_aSqa) (Ann FixitySignature dom_aSq9 stage_aSqa)
+ Language.Haskell.Tools.AST.References: localFixity :: forall dom_aUzd stage_aUze. Partial (Ann ULocalBind dom_aUzd stage_aUze) (Ann ULocalBind dom_aUzd stage_aUze) (Ann UFixitySignature dom_aUzd stage_aUze) (Ann UFixitySignature dom_aUzd stage_aUze)
- Language.Haskell.Tools.AST.References: localSig :: forall dom_aSq9 stage_aSqa. Partial (LocalBind dom_aSq9 stage_aSqa) (LocalBind dom_aSq9 stage_aSqa) (Ann TypeSignature dom_aSq9 stage_aSqa) (Ann TypeSignature dom_aSq9 stage_aSqa)
+ Language.Haskell.Tools.AST.References: localSig :: forall dom_aUzd stage_aUze. Partial (Ann ULocalBind dom_aUzd stage_aUze) (Ann ULocalBind dom_aUzd stage_aUze) (Ann UTypeSignature dom_aUzd stage_aUze) (Ann UTypeSignature dom_aUzd stage_aUze)
- Language.Haskell.Tools.AST.References: localVal :: forall dom_aSq9 stage_aSqa. Partial (LocalBind dom_aSq9 stage_aSqa) (LocalBind dom_aSq9 stage_aSqa) (Ann ValueBind dom_aSq9 stage_aSqa) (Ann ValueBind dom_aSq9 stage_aSqa)
+ Language.Haskell.Tools.AST.References: localVal :: forall dom_aUzd stage_aUze. Partial (Ann ULocalBind dom_aUzd stage_aUze) (Ann ULocalBind dom_aUzd stage_aUze) (Ann UValueBind dom_aUzd stage_aUze) (Ann UValueBind dom_aUzd stage_aUze)
- Language.Haskell.Tools.AST.References: matchBinds :: forall dom_aSqf stage_aSqg. Lens (Match dom_aSqf stage_aSqg) (Match dom_aSqf stage_aSqg) (AnnMaybe LocalBinds dom_aSqf stage_aSqg) (AnnMaybe LocalBinds dom_aSqf stage_aSqg)
+ Language.Haskell.Tools.AST.References: matchBinds :: forall dom_aUzj stage_aUzk. Lens (Ann UMatch dom_aUzj stage_aUzk) (Ann UMatch dom_aUzj stage_aUzk) (AnnMaybeG ULocalBinds dom_aUzj stage_aUzk) (AnnMaybeG ULocalBinds dom_aUzj stage_aUzk)
- Language.Haskell.Tools.AST.References: matchLhs :: forall dom_aSqf stage_aSqg. Lens (Match dom_aSqf stage_aSqg) (Match dom_aSqf stage_aSqg) (Ann MatchLhs dom_aSqf stage_aSqg) (Ann MatchLhs dom_aSqf stage_aSqg)
+ Language.Haskell.Tools.AST.References: matchLhs :: forall dom_aUzj stage_aUzk. Lens (Ann UMatch dom_aUzj stage_aUzk) (Ann UMatch dom_aUzj stage_aUzk) (Ann UMatchLhs dom_aUzj stage_aUzk) (Ann UMatchLhs dom_aUzj stage_aUzk)
- Language.Haskell.Tools.AST.References: matchLhsArgs :: forall dom_aSqd stage_aSqe. Lens (MatchLhs dom_aSqd stage_aSqe) (MatchLhs dom_aSqd stage_aSqe) (AnnList Pattern dom_aSqd stage_aSqe) (AnnList Pattern dom_aSqd stage_aSqe)
+ Language.Haskell.Tools.AST.References: matchLhsArgs :: forall dom_aUzh stage_aUzi. Lens (Ann UMatchLhs dom_aUzh stage_aUzi) (Ann UMatchLhs dom_aUzh stage_aUzi) (AnnListG UPattern dom_aUzh stage_aUzi) (AnnListG UPattern dom_aUzh stage_aUzi)
- Language.Haskell.Tools.AST.References: matchLhsLhs :: forall dom_aSqd stage_aSqe. Partial (MatchLhs dom_aSqd stage_aSqe) (MatchLhs dom_aSqd stage_aSqe) (Ann Pattern dom_aSqd stage_aSqe) (Ann Pattern dom_aSqd stage_aSqe)
+ Language.Haskell.Tools.AST.References: matchLhsLhs :: forall dom_aUzh stage_aUzi. Partial (Ann UMatchLhs dom_aUzh stage_aUzi) (Ann UMatchLhs dom_aUzh stage_aUzi) (Ann UPattern dom_aUzh stage_aUzi) (Ann UPattern dom_aUzh stage_aUzi)
- Language.Haskell.Tools.AST.References: matchLhsName :: forall dom_aSqd stage_aSqe. Partial (MatchLhs dom_aSqd stage_aSqe) (MatchLhs dom_aSqd stage_aSqe) (Ann Name dom_aSqd stage_aSqe) (Ann Name dom_aSqd stage_aSqe)
+ Language.Haskell.Tools.AST.References: matchLhsName :: forall dom_aUzh stage_aUzi. Partial (Ann UMatchLhs dom_aUzh stage_aUzi) (Ann UMatchLhs dom_aUzh stage_aUzi) (Ann UName dom_aUzh stage_aUzi) (Ann UName dom_aUzh stage_aUzi)
- Language.Haskell.Tools.AST.References: matchLhsOperator :: forall dom_aSqd stage_aSqe. Partial (MatchLhs dom_aSqd stage_aSqe) (MatchLhs dom_aSqd stage_aSqe) (Ann Operator dom_aSqd stage_aSqe) (Ann Operator dom_aSqd stage_aSqe)
+ Language.Haskell.Tools.AST.References: matchLhsOperator :: forall dom_aUzh stage_aUzi. Partial (Ann UMatchLhs dom_aUzh stage_aUzi) (Ann UMatchLhs dom_aUzh stage_aUzi) (Ann UOperator dom_aUzh stage_aUzi) (Ann UOperator dom_aUzh stage_aUzi)
- Language.Haskell.Tools.AST.References: matchLhsRhs :: forall dom_aSqd stage_aSqe. Partial (MatchLhs dom_aSqd stage_aSqe) (MatchLhs dom_aSqd stage_aSqe) (Ann Pattern dom_aSqd stage_aSqe) (Ann Pattern dom_aSqd stage_aSqe)
+ Language.Haskell.Tools.AST.References: matchLhsRhs :: forall dom_aUzh stage_aUzi. Partial (Ann UMatchLhs dom_aUzh stage_aUzi) (Ann UMatchLhs dom_aUzh stage_aUzi) (Ann UPattern dom_aUzh stage_aUzi) (Ann UPattern dom_aUzh stage_aUzi)
- Language.Haskell.Tools.AST.References: matchRhs :: forall dom_aSqf stage_aSqg. Lens (Match dom_aSqf stage_aSqg) (Match dom_aSqf stage_aSqg) (Ann Rhs dom_aSqf stage_aSqg) (Ann Rhs dom_aSqf stage_aSqg)
+ Language.Haskell.Tools.AST.References: matchRhs :: forall dom_aUzj stage_aUzk. Lens (Ann UMatch dom_aUzj stage_aUzk) (Ann UMatch dom_aUzj stage_aUzk) (Ann URhs dom_aUzj stage_aUzk) (Ann URhs dom_aUzj stage_aUzk)
- Language.Haskell.Tools.AST.References: mhExports :: forall dom_aYBt stage_aYBu. Lens (ModuleHead dom_aYBt stage_aYBu) (ModuleHead dom_aYBt stage_aYBu) (AnnMaybe ExportSpecList dom_aYBt stage_aYBu) (AnnMaybe ExportSpecList dom_aYBt stage_aYBu)
+ Language.Haskell.Tools.AST.References: mhExports :: forall dom_a1189 stage_a118a. Lens (Ann UModuleHead dom_a1189 stage_a118a) (Ann UModuleHead dom_a1189 stage_a118a) (AnnMaybeG UExportSpecs dom_a1189 stage_a118a) (AnnMaybeG UExportSpecs dom_a1189 stage_a118a)
- Language.Haskell.Tools.AST.References: mhName :: forall dom_aYBt stage_aYBu. Lens (ModuleHead dom_aYBt stage_aYBu) (ModuleHead dom_aYBt stage_aYBu) (Ann ModuleName dom_aYBt stage_aYBu) (Ann ModuleName dom_aYBt stage_aYBu)
+ Language.Haskell.Tools.AST.References: mhName :: forall dom_a1189 stage_a118a. Lens (Ann UModuleHead dom_a1189 stage_a118a) (Ann UModuleHead dom_a1189 stage_a118a) (Ann UModuleName dom_a1189 stage_a118a) (Ann UModuleName dom_a1189 stage_a118a)
- Language.Haskell.Tools.AST.References: mhPragma :: forall dom_aYBt stage_aYBu. Lens (ModuleHead dom_aYBt stage_aYBu) (ModuleHead dom_aYBt stage_aYBu) (AnnMaybe ModulePragma dom_aYBt stage_aYBu) (AnnMaybe ModulePragma dom_aYBt stage_aYBu)
+ Language.Haskell.Tools.AST.References: mhPragma :: forall dom_a1189 stage_a118a. Lens (Ann UModuleHead dom_a1189 stage_a118a) (Ann UModuleHead dom_a1189 stage_a118a) (AnnMaybeG UModulePragma dom_a1189 stage_a118a) (AnnMaybeG UModulePragma dom_a1189 stage_a118a)
- Language.Haskell.Tools.AST.References: minimalAnds :: forall dom_aSpR stage_aSpS. Partial (MinimalFormula dom_aSpR stage_aSpS) (MinimalFormula dom_aSpR stage_aSpS) (AnnList MinimalFormula dom_aSpR stage_aSpS) (AnnList MinimalFormula dom_aSpR stage_aSpS)
+ Language.Haskell.Tools.AST.References: minimalAnds :: forall dom_aVIX stage_aVIY. Partial (Ann UMinimalFormula dom_aVIX stage_aVIY) (Ann UMinimalFormula dom_aVIX stage_aVIY) (AnnListG UMinimalFormula dom_aVIX stage_aVIY) (AnnListG UMinimalFormula dom_aVIX stage_aVIY)
- Language.Haskell.Tools.AST.References: minimalInner :: forall dom_aSpR stage_aSpS. Partial (MinimalFormula dom_aSpR stage_aSpS) (MinimalFormula dom_aSpR stage_aSpS) (Ann MinimalFormula dom_aSpR stage_aSpS) (Ann MinimalFormula dom_aSpR stage_aSpS)
+ Language.Haskell.Tools.AST.References: minimalInner :: forall dom_aVIX stage_aVIY. Partial (Ann UMinimalFormula dom_aVIX stage_aVIY) (Ann UMinimalFormula dom_aVIX stage_aVIY) (Ann UMinimalFormula dom_aVIX stage_aVIY) (Ann UMinimalFormula dom_aVIX stage_aVIY)
- Language.Haskell.Tools.AST.References: minimalName :: forall dom_aSpR stage_aSpS. Partial (MinimalFormula dom_aSpR stage_aSpS) (MinimalFormula dom_aSpR stage_aSpS) (Ann Name dom_aSpR stage_aSpS) (Ann Name dom_aSpR stage_aSpS)
+ Language.Haskell.Tools.AST.References: minimalName :: forall dom_aVIX stage_aVIY. Partial (Ann UMinimalFormula dom_aVIX stage_aVIY) (Ann UMinimalFormula dom_aVIX stage_aVIY) (Ann UName dom_aVIX stage_aVIY) (Ann UName dom_aVIX stage_aVIY)
- Language.Haskell.Tools.AST.References: minimalOrs :: forall dom_aSpR stage_aSpS. Partial (MinimalFormula dom_aSpR stage_aSpS) (MinimalFormula dom_aSpR stage_aSpS) (AnnList MinimalFormula dom_aSpR stage_aSpS) (AnnList MinimalFormula dom_aSpR stage_aSpS)
+ Language.Haskell.Tools.AST.References: minimalOrs :: forall dom_aVIX stage_aVIY. Partial (Ann UMinimalFormula dom_aVIX stage_aVIY) (Ann UMinimalFormula dom_aVIX stage_aVIY) (AnnListG UMinimalFormula dom_aVIX stage_aVIY) (AnnListG UMinimalFormula dom_aVIX stage_aVIY)
- Language.Haskell.Tools.AST.References: modDecl :: forall dom_aYBv stage_aYBw. Lens (Module dom_aYBv stage_aYBw) (Module dom_aYBv stage_aYBw) (AnnList Decl dom_aYBv stage_aYBw) (AnnList Decl dom_aYBv stage_aYBw)
+ Language.Haskell.Tools.AST.References: modDecl :: forall dom_a118b stage_a118c. Lens (Ann UModule dom_a118b stage_a118c) (Ann UModule dom_a118b stage_a118c) (AnnListG UDecl dom_a118b stage_a118c) (AnnListG UDecl dom_a118b stage_a118c)
- Language.Haskell.Tools.AST.References: modDeprecatedPragma :: forall dom_aYBh stage_aYBi. Partial (ModulePragma dom_aYBh stage_aYBi) (ModulePragma dom_aYBh stage_aYBi) (AnnList StringNode dom_aYBh stage_aYBi) (AnnList StringNode dom_aYBh stage_aYBi)
+ Language.Haskell.Tools.AST.References: modDeprecatedPragma :: forall dom_a117X stage_a117Y. Partial (Ann UModulePragma dom_a117X stage_a117Y) (Ann UModulePragma dom_a117X stage_a117Y) (AnnListG UStringNode dom_a117X stage_a117Y) (AnnListG UStringNode dom_a117X stage_a117Y)
- Language.Haskell.Tools.AST.References: modHead :: forall dom_aYBv stage_aYBw. Lens (Module dom_aYBv stage_aYBw) (Module dom_aYBv stage_aYBw) (AnnMaybe ModuleHead dom_aYBv stage_aYBw) (AnnMaybe ModuleHead dom_aYBv stage_aYBw)
+ Language.Haskell.Tools.AST.References: modHead :: forall dom_a118b stage_a118c. Lens (Ann UModule dom_a118b stage_a118c) (Ann UModule dom_a118b stage_a118c) (AnnMaybeG UModuleHead dom_a118b stage_a118c) (AnnMaybeG UModuleHead dom_a118b stage_a118c)
- Language.Haskell.Tools.AST.References: modImports :: forall dom_aYBv stage_aYBw. Lens (Module dom_aYBv stage_aYBw) (Module dom_aYBv stage_aYBw) (AnnList ImportDecl dom_aYBv stage_aYBw) (AnnList ImportDecl dom_aYBv stage_aYBw)
+ Language.Haskell.Tools.AST.References: modImports :: forall dom_a118b stage_a118c. Lens (Ann UModule dom_a118b stage_a118c) (Ann UModule dom_a118b stage_a118c) (AnnListG UImportDecl dom_a118b stage_a118c) (AnnListG UImportDecl dom_a118b stage_a118c)
- Language.Haskell.Tools.AST.References: modWarningStr :: forall dom_aYBh stage_aYBi. Partial (ModulePragma dom_aYBh stage_aYBi) (ModulePragma dom_aYBh stage_aYBi) (AnnList StringNode dom_aYBh stage_aYBi) (AnnList StringNode dom_aYBh stage_aYBi)
+ Language.Haskell.Tools.AST.References: modWarningStr :: forall dom_a117X stage_a117Y. Partial (Ann UModulePragma dom_a117X stage_a117Y) (Ann UModulePragma dom_a117X stage_a117Y) (AnnListG UStringNode dom_a117X stage_a117Y) (AnnListG UStringNode dom_a117X stage_a117Y)
- Language.Haskell.Tools.AST.References: moduleNameString :: forall dom_aKAB stage_aKAC. Lens (ModuleName dom_aKAB stage_aKAC) (ModuleName dom_aKAB stage_aKAC) String String
+ Language.Haskell.Tools.AST.References: moduleNameString :: forall dom_a117F stage_a117G. Lens (Ann UModuleName dom_a117F stage_a117G) (Ann UModuleName dom_a117F stage_a117G) String String
- Language.Haskell.Tools.AST.References: noInlineDef :: forall dom_aSpX stage_aSpY. Partial (TopLevelPragma dom_aSpX stage_aSpY) (TopLevelPragma dom_aSpX stage_aSpY) (Ann Name dom_aSpX stage_aSpY) (Ann Name dom_aSpX stage_aSpY)
+ Language.Haskell.Tools.AST.References: noInlineDef :: forall dom_aVJ3 stage_aVJ4. Partial (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann UName dom_aVJ3 stage_aVJ4) (Ann UName dom_aVJ3 stage_aVJ4)
- Language.Haskell.Tools.AST.References: numberInteger :: forall dom_aPfu stage_aPfv. Lens (Number dom_aPfu stage_aPfv) (Number dom_aPfu stage_aPfv) Integer Integer
+ Language.Haskell.Tools.AST.References: numberInteger :: forall dom_aRkU stage_aRkV. Lens (Ann Number dom_aRkU stage_aRkV) (Ann Number dom_aRkU stage_aRkV) Integer Integer
- Language.Haskell.Tools.AST.References: oneDerived :: forall dom_aUoO stage_aUoP. Partial (Deriving dom_aUoO stage_aUoP) (Deriving dom_aUoO stage_aUoP) (Ann InstanceHead dom_aUoO stage_aUoP) (Ann InstanceHead dom_aUoO stage_aUoP)
+ Language.Haskell.Tools.AST.References: oneDerived :: forall dom_aVJr stage_aVJs. Partial (Ann UDeriving dom_aVJr stage_aVJs) (Ann UDeriving dom_aVJr stage_aVJs) (Ann UInstanceHead dom_aVJr stage_aVJs) (Ann UInstanceHead dom_aVJr stage_aVJs)
- Language.Haskell.Tools.AST.References: operatorName :: forall dom_aKAL stage_aKAM dom'_a5bEW stage'_a5bEX. Lens (Operator dom_aKAL stage_aKAM) (Operator dom'_a5bEW stage'_a5bEX) (Ann QualifiedName dom_aKAL stage_aKAM) (Ann QualifiedName dom'_a5bEW stage'_a5bEX)
+ Language.Haskell.Tools.AST.References: operatorName :: forall dom_aNh3 stage_aNh4 dom'_a4Afz stage'_a4AfA. Lens (Ann UOperator dom_aNh3 stage_aNh4) (Ann UOperator dom_aNh3 stage_aNh4) (Ann UQualifiedName dom_aNh3 stage_aNh4) (Ann UQualifiedName dom_aNh3 stage_aNh4)
- Language.Haskell.Tools.AST.References: patArgs :: forall dom_aUoC stage_aUoD. Partial (PatSynLhs dom_aUoC stage_aUoD) (PatSynLhs dom_aUoC stage_aUoD) (AnnList Name dom_aUoC stage_aUoD) (AnnList Name dom_aUoC stage_aUoD)
+ Language.Haskell.Tools.AST.References: patArgs :: forall dom_aVJl stage_aVJm. Partial (Ann UPatSynLhs dom_aVJl stage_aVJm) (Ann UPatSynLhs dom_aVJl stage_aVJm) (AnnListG UName dom_aVJl stage_aVJm) (AnnListG UName dom_aVJl stage_aVJm)
- Language.Haskell.Tools.AST.References: patLhs :: forall dom_aUoE stage_aUoF. Lens (PatternSynonym dom_aUoE stage_aUoF) (PatternSynonym dom_aUoE stage_aUoF) (Ann PatSynLhs dom_aUoE stage_aUoF) (Ann PatSynLhs dom_aUoE stage_aUoF)
+ Language.Haskell.Tools.AST.References: patLhs :: forall dom_aVJn stage_aVJo. Lens (Ann UPatternSynonym dom_aVJn stage_aVJo) (Ann UPatternSynonym dom_aVJn stage_aVJo) (Ann UPatSynLhs dom_aVJn stage_aVJo) (Ann UPatSynLhs dom_aVJn stage_aVJo)
- Language.Haskell.Tools.AST.References: patName :: forall dom_aUoC stage_aUoD. Partial (PatSynLhs dom_aUoC stage_aUoD) (PatSynLhs dom_aUoC stage_aUoD) (Ann Name dom_aUoC stage_aUoD) (Ann Name dom_aUoC stage_aUoD)
+ Language.Haskell.Tools.AST.References: patName :: forall dom_aVJl stage_aVJm. Partial (Ann UPatSynLhs dom_aVJl stage_aVJm) (Ann UPatSynLhs dom_aVJl stage_aVJm) (Ann UName dom_aVJl stage_aVJm) (Ann UName dom_aVJl stage_aVJm)
- Language.Haskell.Tools.AST.References: patOpposite :: forall dom_aUoy stage_aUoz dom'_a5baJ stage'_a5baK. Lens (PatSynWhere dom_aUoy stage_aUoz) (PatSynWhere dom'_a5baJ stage'_a5baK) (AnnList Match dom_aUoy stage_aUoz) (AnnList Match dom'_a5baJ stage'_a5baK)
+ Language.Haskell.Tools.AST.References: patOpposite :: forall dom_aVJh stage_aVJi dom'_a4qIx stage'_a4qIy. Lens (Ann UPatSynWhere dom_aVJh stage_aVJi) (Ann UPatSynWhere dom_aVJh stage_aVJi) (AnnListG UMatch dom_aVJh stage_aVJi) (AnnListG UMatch dom_aVJh stage_aVJi)
- Language.Haskell.Tools.AST.References: patQQ :: forall dom_aNUD stage_aNUE. Partial (Pattern dom_aNUD stage_aNUE) (Pattern dom_aNUD stage_aNUE) (Ann QuasiQuote dom_aNUD stage_aNUE) (Ann QuasiQuote dom_aNUD stage_aNUE)
+ Language.Haskell.Tools.AST.References: patQQ :: forall dom_aPYe stage_aPYf. Partial (Ann UPattern dom_aPYe stage_aPYf) (Ann UPattern dom_aPYe stage_aPYf) (Ann UQuasiQuote dom_aPYe stage_aPYf) (Ann UQuasiQuote dom_aPYe stage_aPYf)
- Language.Haskell.Tools.AST.References: patRhs :: forall dom_aUoE stage_aUoF. Lens (PatternSynonym dom_aUoE stage_aUoF) (PatternSynonym dom_aUoE stage_aUoF) (Ann PatSynRhs dom_aUoE stage_aUoF) (Ann PatSynRhs dom_aUoE stage_aUoF)
+ Language.Haskell.Tools.AST.References: patRhs :: forall dom_aVJn stage_aVJo. Lens (Ann UPatternSynonym dom_aVJn stage_aVJo) (Ann UPatternSynonym dom_aVJn stage_aVJo) (Ann UPatSynRhs dom_aVJn stage_aVJo) (Ann UPatSynRhs dom_aVJn stage_aVJo)
- Language.Haskell.Tools.AST.References: patRhsOpposite :: forall dom_aUoA stage_aUoB. Partial (PatSynRhs dom_aUoA stage_aUoB) (PatSynRhs dom_aUoA stage_aUoB) (AnnMaybe PatSynWhere dom_aUoA stage_aUoB) (AnnMaybe PatSynWhere dom_aUoA stage_aUoB)
+ Language.Haskell.Tools.AST.References: patRhsOpposite :: forall dom_aVJj stage_aVJk. Partial (Ann UPatSynRhs dom_aVJj stage_aVJk) (Ann UPatSynRhs dom_aVJj stage_aVJk) (AnnMaybeG UPatSynWhere dom_aVJj stage_aVJk) (AnnMaybeG UPatSynWhere dom_aVJj stage_aVJk)
- Language.Haskell.Tools.AST.References: patRhsPat :: forall dom_aUoA stage_aUoB. Lens (PatSynRhs dom_aUoA stage_aUoB) (PatSynRhs dom_aUoA stage_aUoB) (Ann Pattern dom_aUoA stage_aUoB) (Ann Pattern dom_aUoA stage_aUoB)
+ Language.Haskell.Tools.AST.References: patRhsPat :: forall dom_aVJj stage_aVJk. Lens (Ann UPatSynRhs dom_aVJj stage_aVJk) (Ann UPatSynRhs dom_aVJj stage_aVJk) (Ann UPattern dom_aVJj stage_aVJk) (Ann UPattern dom_aVJj stage_aVJk)
- Language.Haskell.Tools.AST.References: patSigName :: forall dom_aUoG stage_aUoH. Lens (PatternTypeSignature dom_aUoG stage_aUoH) (PatternTypeSignature dom_aUoG stage_aUoH) (Ann Name dom_aUoG stage_aUoH) (Ann Name dom_aUoG stage_aUoH)
+ Language.Haskell.Tools.AST.References: patSigName :: forall dom_aVJp stage_aVJq. Lens (Ann UPatternTypeSignature dom_aVJp stage_aVJq) (Ann UPatternTypeSignature dom_aVJp stage_aVJq) (Ann UName dom_aVJp stage_aVJq) (Ann UName dom_aVJp stage_aVJq)
- Language.Haskell.Tools.AST.References: patSigType :: forall dom_aUoG stage_aUoH. Lens (PatternTypeSignature dom_aUoG stage_aUoH) (PatternTypeSignature dom_aUoG stage_aUoH) (Ann Type dom_aUoG stage_aUoH) (Ann Type dom_aUoG stage_aUoH)
+ Language.Haskell.Tools.AST.References: patSigType :: forall dom_aVJp stage_aVJq. Lens (Ann UPatternTypeSignature dom_aVJp stage_aVJq) (Ann UPatternTypeSignature dom_aVJp stage_aVJq) (Ann UType dom_aVJp stage_aVJq) (Ann UType dom_aVJp stage_aVJq)
- Language.Haskell.Tools.AST.References: patSynLhs :: forall dom_aUoC stage_aUoD. Partial (PatSynLhs dom_aUoC stage_aUoD) (PatSynLhs dom_aUoC stage_aUoD) (Ann Name dom_aUoC stage_aUoD) (Ann Name dom_aUoC stage_aUoD)
+ Language.Haskell.Tools.AST.References: patSynLhs :: forall dom_aVJl stage_aVJm. Partial (Ann UPatSynLhs dom_aVJl stage_aVJm) (Ann UPatSynLhs dom_aVJl stage_aVJm) (Ann UName dom_aVJl stage_aVJm) (Ann UName dom_aVJl stage_aVJm)
- Language.Haskell.Tools.AST.References: patSynOp :: forall dom_aUoC stage_aUoD. Partial (PatSynLhs dom_aUoC stage_aUoD) (PatSynLhs dom_aUoC stage_aUoD) (Ann Operator dom_aUoC stage_aUoD) (Ann Operator dom_aUoC stage_aUoD)
+ Language.Haskell.Tools.AST.References: patSynOp :: forall dom_aVJl stage_aVJm. Partial (Ann UPatSynLhs dom_aVJl stage_aVJm) (Ann UPatSynLhs dom_aVJl stage_aVJm) (Ann UOperator dom_aVJl stage_aVJm) (Ann UOperator dom_aVJl stage_aVJm)
- Language.Haskell.Tools.AST.References: patSynRhs :: forall dom_aUoC stage_aUoD. Partial (PatSynLhs dom_aUoC stage_aUoD) (PatSynLhs dom_aUoC stage_aUoD) (Ann Name dom_aUoC stage_aUoD) (Ann Name dom_aUoC stage_aUoD)
+ Language.Haskell.Tools.AST.References: patSynRhs :: forall dom_aVJl stage_aVJm. Partial (Ann UPatSynLhs dom_aVJl stage_aVJm) (Ann UPatSynLhs dom_aVJl stage_aVJm) (Ann UName dom_aVJl stage_aVJm) (Ann UName dom_aVJl stage_aVJm)
- Language.Haskell.Tools.AST.References: patternArgs :: forall dom_aNUD stage_aNUE. Partial (Pattern dom_aNUD stage_aNUE) (Pattern dom_aNUD stage_aNUE) (AnnList Pattern dom_aNUD stage_aNUE) (AnnList Pattern dom_aNUD stage_aNUE)
+ Language.Haskell.Tools.AST.References: patternArgs :: forall dom_aPYe stage_aPYf. Partial (Ann UPattern dom_aPYe stage_aPYf) (Ann UPattern dom_aPYe stage_aPYf) (AnnListG UPattern dom_aPYe stage_aPYf) (AnnListG UPattern dom_aPYe stage_aPYf)
- Language.Haskell.Tools.AST.References: patternElems :: forall dom_aNUD stage_aNUE. Partial (Pattern dom_aNUD stage_aNUE) (Pattern dom_aNUD stage_aNUE) (AnnList Pattern dom_aNUD stage_aNUE) (AnnList Pattern dom_aNUD stage_aNUE)
+ Language.Haskell.Tools.AST.References: patternElems :: forall dom_aPYe stage_aPYf. Partial (Ann UPattern dom_aPYe stage_aPYf) (Ann UPattern dom_aPYe stage_aPYf) (AnnListG UPattern dom_aPYe stage_aPYf) (AnnListG UPattern dom_aPYe stage_aPYf)
- Language.Haskell.Tools.AST.References: patternExpr :: forall dom_aNUD stage_aNUE. Partial (Pattern dom_aNUD stage_aNUE) (Pattern dom_aNUD stage_aNUE) (Ann Expr dom_aNUD stage_aNUE) (Ann Expr dom_aNUD stage_aNUE)
+ Language.Haskell.Tools.AST.References: patternExpr :: forall dom_aPYe stage_aPYf. Partial (Ann UPattern dom_aPYe stage_aPYf) (Ann UPattern dom_aPYe stage_aPYf) (Ann UExpr dom_aPYe stage_aPYf) (Ann UExpr dom_aPYe stage_aPYf)
- Language.Haskell.Tools.AST.References: patternFields :: forall dom_aNUD stage_aNUE. Partial (Pattern dom_aNUD stage_aNUE) (Pattern dom_aNUD stage_aNUE) (AnnList PatternField dom_aNUD stage_aNUE) (AnnList PatternField dom_aNUD stage_aNUE)
+ Language.Haskell.Tools.AST.References: patternFields :: forall dom_aPYe stage_aPYf. Partial (Ann UPattern dom_aPYe stage_aPYf) (Ann UPattern dom_aPYe stage_aPYf) (AnnListG UPatternField dom_aPYe stage_aPYf) (AnnListG UPatternField dom_aPYe stage_aPYf)
- Language.Haskell.Tools.AST.References: patternInner :: forall dom_aNUD stage_aNUE. Partial (Pattern dom_aNUD stage_aNUE) (Pattern dom_aNUD stage_aNUE) (Ann Pattern dom_aNUD stage_aNUE) (Ann Pattern dom_aNUD stage_aNUE)
+ Language.Haskell.Tools.AST.References: patternInner :: forall dom_aPYe stage_aPYf. Partial (Ann UPattern dom_aPYe stage_aPYf) (Ann UPattern dom_aPYe stage_aPYf) (Ann UPattern dom_aPYe stage_aPYf) (Ann UPattern dom_aPYe stage_aPYf)
- Language.Haskell.Tools.AST.References: patternLhs :: forall dom_aNUD stage_aNUE. Partial (Pattern dom_aNUD stage_aNUE) (Pattern dom_aNUD stage_aNUE) (Ann Pattern dom_aNUD stage_aNUE) (Ann Pattern dom_aNUD stage_aNUE)
+ Language.Haskell.Tools.AST.References: patternLhs :: forall dom_aPYe stage_aPYf. Partial (Ann UPattern dom_aPYe stage_aPYf) (Ann UPattern dom_aPYe stage_aPYf) (Ann UPattern dom_aPYe stage_aPYf) (Ann UPattern dom_aPYe stage_aPYf)
- Language.Haskell.Tools.AST.References: patternLit :: forall dom_aNUD stage_aNUE. Partial (Pattern dom_aNUD stage_aNUE) (Pattern dom_aNUD stage_aNUE) (Ann Literal dom_aNUD stage_aNUE) (Ann Literal dom_aNUD stage_aNUE)
+ Language.Haskell.Tools.AST.References: patternLit :: forall dom_aPYe stage_aPYf. Partial (Ann UPattern dom_aPYe stage_aPYf) (Ann UPattern dom_aPYe stage_aPYf) (Ann ULiteral dom_aPYe stage_aPYf) (Ann ULiteral dom_aPYe stage_aPYf)
- Language.Haskell.Tools.AST.References: patternLiteral :: forall dom_aNUD stage_aNUE. Partial (Pattern dom_aNUD stage_aNUE) (Pattern dom_aNUD stage_aNUE) (Ann Literal dom_aNUD stage_aNUE) (Ann Literal dom_aNUD stage_aNUE)
+ Language.Haskell.Tools.AST.References: patternLiteral :: forall dom_aPYe stage_aPYf. Partial (Ann UPattern dom_aPYe stage_aPYf) (Ann UPattern dom_aPYe stage_aPYf) (Ann ULiteral dom_aPYe stage_aPYf) (Ann ULiteral dom_aPYe stage_aPYf)
- Language.Haskell.Tools.AST.References: patternName :: forall dom_aNUD stage_aNUE. Partial (Pattern dom_aNUD stage_aNUE) (Pattern dom_aNUD stage_aNUE) (Ann Name dom_aNUD stage_aNUE) (Ann Name dom_aNUD stage_aNUE)
+ Language.Haskell.Tools.AST.References: patternName :: forall dom_aPYe stage_aPYf. Partial (Ann UPattern dom_aPYe stage_aPYf) (Ann UPattern dom_aPYe stage_aPYf) (Ann UName dom_aPYe stage_aPYf) (Ann UName dom_aPYe stage_aPYf)
- Language.Haskell.Tools.AST.References: patternOperator :: forall dom_aNUD stage_aNUE. Partial (Pattern dom_aNUD stage_aNUE) (Pattern dom_aNUD stage_aNUE) (Ann Operator dom_aNUD stage_aNUE) (Ann Operator dom_aNUD stage_aNUE)
+ Language.Haskell.Tools.AST.References: patternOperator :: forall dom_aPYe stage_aPYf. Partial (Ann UPattern dom_aPYe stage_aPYf) (Ann UPattern dom_aPYe stage_aPYf) (Ann UOperator dom_aPYe stage_aPYf) (Ann UOperator dom_aPYe stage_aPYf)
- Language.Haskell.Tools.AST.References: patternRhs :: forall dom_aNUD stage_aNUE. Partial (Pattern dom_aNUD stage_aNUE) (Pattern dom_aNUD stage_aNUE) (Ann Pattern dom_aNUD stage_aNUE) (Ann Pattern dom_aNUD stage_aNUE)
+ Language.Haskell.Tools.AST.References: patternRhs :: forall dom_aPYe stage_aPYf. Partial (Ann UPattern dom_aPYe stage_aPYf) (Ann UPattern dom_aPYe stage_aPYf) (Ann UPattern dom_aPYe stage_aPYf) (Ann UPattern dom_aPYe stage_aPYf)
- Language.Haskell.Tools.AST.References: patternSplice :: forall dom_aNUD stage_aNUE. Partial (Pattern dom_aNUD stage_aNUE) (Pattern dom_aNUD stage_aNUE) (Ann Splice dom_aNUD stage_aNUE) (Ann Splice dom_aNUD stage_aNUE)
+ Language.Haskell.Tools.AST.References: patternSplice :: forall dom_aPYe stage_aPYf. Partial (Ann UPattern dom_aPYe stage_aPYf) (Ann UPattern dom_aPYe stage_aPYf) (Ann USplice dom_aPYe stage_aPYf) (Ann USplice dom_aPYe stage_aPYf)
- Language.Haskell.Tools.AST.References: patternType :: forall dom_aNUD stage_aNUE. Partial (Pattern dom_aNUD stage_aNUE) (Pattern dom_aNUD stage_aNUE) (Ann Type dom_aNUD stage_aNUE) (Ann Type dom_aNUD stage_aNUE)
+ Language.Haskell.Tools.AST.References: patternType :: forall dom_aPYe stage_aPYf. Partial (Ann UPattern dom_aPYe stage_aPYf) (Ann UPattern dom_aPYe stage_aPYf) (Ann UType dom_aPYe stage_aPYf) (Ann UType dom_aPYe stage_aPYf)
- Language.Haskell.Tools.AST.References: phaseNum :: forall dom_aKA9 stage_aKAa. Lens (PhaseNumber dom_aKA9 stage_aKAa) (PhaseNumber dom_aKA9 stage_aKAa) Integer Integer
+ Language.Haskell.Tools.AST.References: phaseNum :: forall dom_aVJ7 stage_aVJ8. Lens (Ann PhaseNumber dom_aVJ7 stage_aVJ8) (Ann PhaseNumber dom_aVJ7 stage_aVJ8) Integer Integer
- Language.Haskell.Tools.AST.References: phaseNumber :: forall dom_aKAb stage_aKAc. Lens (PhaseControl dom_aKAb stage_aKAc) (PhaseControl dom_aKAb stage_aKAc) (Ann PhaseNumber dom_aKAb stage_aKAc) (Ann PhaseNumber dom_aKAb stage_aKAc)
+ Language.Haskell.Tools.AST.References: phaseNumber :: forall dom_aVJ9 stage_aVJa. Lens (Ann UPhaseControl dom_aVJ9 stage_aVJa) (Ann UPhaseControl dom_aVJ9 stage_aVJa) (Ann PhaseNumber dom_aVJ9 stage_aVJa) (Ann PhaseNumber dom_aVJ9 stage_aVJa)
- Language.Haskell.Tools.AST.References: phaseUntil :: forall dom_aKAb stage_aKAc. Lens (PhaseControl dom_aKAb stage_aKAc) (PhaseControl dom_aKAb stage_aKAc) (AnnMaybe PhaseInvert dom_aKAb stage_aKAc) (AnnMaybe PhaseInvert dom_aKAb stage_aKAc)
+ Language.Haskell.Tools.AST.References: phaseUntil :: forall dom_aVJ9 stage_aVJa. Lens (Ann UPhaseControl dom_aVJ9 stage_aVJa) (Ann UPhaseControl dom_aVJ9 stage_aVJa) (AnnMaybeG PhaseInvert dom_aVJ9 stage_aVJa) (AnnMaybeG PhaseInvert dom_aVJ9 stage_aVJa)
- Language.Haskell.Tools.AST.References: pragmaConlike :: forall dom_aSpX stage_aSpY. Partial (TopLevelPragma dom_aSpX stage_aSpY) (TopLevelPragma dom_aSpX stage_aSpY) (AnnMaybe ConlikeAnnot dom_aSpX stage_aSpY) (AnnMaybe ConlikeAnnot dom_aSpX stage_aSpY)
+ Language.Haskell.Tools.AST.References: pragmaConlike :: forall dom_aVJ3 stage_aVJ4. Partial (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (AnnMaybeG UConlikeAnnot dom_aVJ3 stage_aVJ4) (AnnMaybeG UConlikeAnnot dom_aVJ3 stage_aVJ4)
- Language.Haskell.Tools.AST.References: pragmaFileName :: forall dom_aSpX stage_aSpY. Partial (TopLevelPragma dom_aSpX stage_aSpY) (TopLevelPragma dom_aSpX stage_aSpY) (AnnMaybe StringNode dom_aSpX stage_aSpY) (AnnMaybe StringNode dom_aSpX stage_aSpY)
+ Language.Haskell.Tools.AST.References: pragmaFileName :: forall dom_aVJ3 stage_aVJ4. Partial (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (AnnMaybeG UStringNode dom_aVJ3 stage_aVJ4) (AnnMaybeG UStringNode dom_aVJ3 stage_aVJ4)
- Language.Haskell.Tools.AST.References: pragmaFormula :: forall dom_aUp8 stage_aUp9. Partial (ClassElement dom_aUp8 stage_aUp9) (ClassElement dom_aUp8 stage_aUp9) (Ann MinimalFormula dom_aUp8 stage_aUp9) (Ann MinimalFormula dom_aUp8 stage_aUp9)
+ Language.Haskell.Tools.AST.References: pragmaFormula :: forall dom_aVJZ stage_aVK0. Partial (Ann UClassElement dom_aVJZ stage_aVK0) (Ann UClassElement dom_aVJZ stage_aVK0) (Ann UMinimalFormula dom_aVJZ stage_aVK0) (Ann UMinimalFormula dom_aVJZ stage_aVK0)
- Language.Haskell.Tools.AST.References: pragmaLineNum :: forall dom_aSpX stage_aSpY. Partial (TopLevelPragma dom_aSpX stage_aSpY) (TopLevelPragma dom_aSpX stage_aSpY) (Ann LineNumber dom_aSpX stage_aSpY) (Ann LineNumber dom_aSpX stage_aSpY)
+ Language.Haskell.Tools.AST.References: pragmaLineNum :: forall dom_aVJ3 stage_aVJ4. Partial (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann LineNumber dom_aVJ3 stage_aVJ4) (Ann LineNumber dom_aVJ3 stage_aVJ4)
- Language.Haskell.Tools.AST.References: pragmaMessage :: forall dom_aSpX stage_aSpY. Partial (TopLevelPragma dom_aSpX stage_aSpY) (TopLevelPragma dom_aSpX stage_aSpY) (Ann StringNode dom_aSpX stage_aSpY) (Ann StringNode dom_aSpX stage_aSpY)
+ Language.Haskell.Tools.AST.References: pragmaMessage :: forall dom_aVJ3 stage_aVJ4. Partial (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann UStringNode dom_aVJ3 stage_aVJ4) (Ann UStringNode dom_aVJ3 stage_aVJ4)
- Language.Haskell.Tools.AST.References: pragmaObjects :: forall dom_aSpX stage_aSpY. Partial (TopLevelPragma dom_aSpX stage_aSpY) (TopLevelPragma dom_aSpX stage_aSpY) (AnnList Name dom_aSpX stage_aSpY) (AnnList Name dom_aSpX stage_aSpY)
+ Language.Haskell.Tools.AST.References: pragmaObjects :: forall dom_aVJ3 stage_aVJ4. Partial (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (AnnListG UName dom_aVJ3 stage_aVJ4) (AnnListG UName dom_aVJ3 stage_aVJ4)
- Language.Haskell.Tools.AST.References: pragmaPhase :: forall dom_aSpX stage_aSpY. Partial (TopLevelPragma dom_aSpX stage_aSpY) (TopLevelPragma dom_aSpX stage_aSpY) (AnnMaybe PhaseControl dom_aSpX stage_aSpY) (AnnMaybe PhaseControl dom_aSpX stage_aSpY)
+ Language.Haskell.Tools.AST.References: pragmaPhase :: forall dom_aVJ3 stage_aVJ4. Partial (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (AnnMaybeG UPhaseControl dom_aVJ3 stage_aVJ4) (AnnMaybeG UPhaseControl dom_aVJ3 stage_aVJ4)
- Language.Haskell.Tools.AST.References: pragmaRule :: forall dom_aSpX stage_aSpY. Partial (TopLevelPragma dom_aSpX stage_aSpY) (TopLevelPragma dom_aSpX stage_aSpY) (AnnList Rule dom_aSpX stage_aSpY) (AnnList Rule dom_aSpX stage_aSpY)
+ Language.Haskell.Tools.AST.References: pragmaRule :: forall dom_aVJ3 stage_aVJ4. Partial (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (AnnListG URule dom_aVJ3 stage_aVJ4) (AnnListG URule dom_aVJ3 stage_aVJ4)
- Language.Haskell.Tools.AST.References: pragmaSrcRange :: forall dom_aPfy stage_aPfz. Partial (ExprPragma dom_aPfy stage_aPfz) (ExprPragma dom_aPfy stage_aPfz) (Ann SourceRange dom_aPfy stage_aPfz) (Ann SourceRange dom_aPfy stage_aPfz)
+ Language.Haskell.Tools.AST.References: pragmaSrcRange :: forall dom_aRkY stage_aRkZ. Partial (Ann UExprPragma dom_aRkY stage_aRkZ) (Ann UExprPragma dom_aRkY stage_aRkZ) (Ann USourceRange dom_aRkY stage_aRkZ) (Ann USourceRange dom_aRkY stage_aRkZ)
- Language.Haskell.Tools.AST.References: pragmaStr :: forall dom_aPfy stage_aPfz. Partial (ExprPragma dom_aPfy stage_aPfz) (ExprPragma dom_aPfy stage_aPfz) (Ann StringNode dom_aPfy stage_aPfz) (Ann StringNode dom_aPfy stage_aPfz)
+ Language.Haskell.Tools.AST.References: pragmaStr :: forall dom_aRkY stage_aRkZ. Partial (Ann UExprPragma dom_aRkY stage_aRkZ) (Ann UExprPragma dom_aRkY stage_aRkZ) (Ann UStringNode dom_aRkY stage_aRkZ) (Ann UStringNode dom_aRkY stage_aRkZ)
- Language.Haskell.Tools.AST.References: precedenceValue :: forall dom_aKAf stage_aKAg. Lens (Precedence dom_aKAf stage_aKAg) (Precedence dom_aKAf stage_aKAg) Int Int
+ Language.Haskell.Tools.AST.References: precedenceValue :: forall dom_aUz5 stage_aUz6. Lens (Ann Precedence dom_aUz5 stage_aUz6) (Ann Precedence dom_aUz5 stage_aUz6) Int Int
- Language.Haskell.Tools.AST.References: procExpr :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Cmd dom_aPfP stage_aPfQ) (Ann Cmd dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: procExpr :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UCmd dom_aRlf stage_aRlg) (Ann UCmd dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: procPattern :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Pattern dom_aPfP stage_aPfQ) (Ann Pattern dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: procPattern :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UPattern dom_aRlf stage_aRlg) (Ann UPattern dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: promotedConName :: forall t_aM2p dom_aM2q stage_aM2r. Partial (Promoted t_aM2p dom_aM2q stage_aM2r) (Promoted t_aM2p dom_aM2q stage_aM2r) (Ann Name dom_aM2q stage_aM2r) (Ann Name dom_aM2q stage_aM2r)
+ Language.Haskell.Tools.AST.References: promotedConName :: forall t_aO5V dom_aO5W stage_aO5X. Partial (Ann (UPromoted t_aO5V) dom_aO5W stage_aO5X) (Ann (UPromoted t_aO5V) dom_aO5W stage_aO5X) (Ann UName dom_aO5W stage_aO5X) (Ann UName dom_aO5W stage_aO5X)
- Language.Haskell.Tools.AST.References: promotedElements :: forall t_aM2p dom_aM2q stage_aM2r t'_a5bwZ. Partial (Promoted t_aM2p dom_aM2q stage_aM2r) (Promoted t'_a5bwZ dom_aM2q stage_aM2r) (AnnList t_aM2p dom_aM2q stage_aM2r) (AnnList t'_a5bwZ dom_aM2q stage_aM2r)
+ Language.Haskell.Tools.AST.References: promotedElements :: forall t_aO5V dom_aO5W stage_aO5X t'_a4A6v. Partial (Ann (UPromoted t_aO5V) dom_aO5W stage_aO5X) (Ann (UPromoted t_aO5V) dom_aO5W stage_aO5X) (AnnListG t_aO5V dom_aO5W stage_aO5X) (AnnListG t_aO5V dom_aO5W stage_aO5X)
- Language.Haskell.Tools.AST.References: promotedIntValue :: forall t_aM2p dom_aM2q stage_aM2r. Partial (Promoted t_aM2p dom_aM2q stage_aM2r) (Promoted t_aM2p dom_aM2q stage_aM2r) Integer Integer
+ Language.Haskell.Tools.AST.References: promotedIntValue :: forall t_aO5V dom_aO5W stage_aO5X. Partial (Ann (UPromoted t_aO5V) dom_aO5W stage_aO5X) (Ann (UPromoted t_aO5V) dom_aO5W stage_aO5X) Integer Integer
- Language.Haskell.Tools.AST.References: promotedStringValue :: forall t_aM2p dom_aM2q stage_aM2r. Partial (Promoted t_aM2p dom_aM2q stage_aM2r) (Promoted t_aM2p dom_aM2q stage_aM2r) String String
+ Language.Haskell.Tools.AST.References: promotedStringValue :: forall t_aO5V dom_aO5W stage_aO5X. Partial (Ann (UPromoted t_aO5V) dom_aO5W stage_aO5X) (Ann (UPromoted t_aO5V) dom_aO5W stage_aO5X) String String
- Language.Haskell.Tools.AST.References: qqExprBody :: forall dom_aZC0 stage_aZC1. Lens (QuasiQuote dom_aZC0 stage_aZC1) (QuasiQuote dom_aZC0 stage_aZC1) (Ann QQString dom_aZC0 stage_aZC1) (Ann QQString dom_aZC0 stage_aZC1)
+ Language.Haskell.Tools.AST.References: qqExprBody :: forall dom_a12c5 stage_a12c6. Lens (Ann UQuasiQuote dom_a12c5 stage_a12c6) (Ann UQuasiQuote dom_a12c5 stage_a12c6) (Ann QQString dom_a12c5 stage_a12c6) (Ann QQString dom_a12c5 stage_a12c6)
- Language.Haskell.Tools.AST.References: qqExprName :: forall dom_aZC0 stage_aZC1. Lens (QuasiQuote dom_aZC0 stage_aZC1) (QuasiQuote dom_aZC0 stage_aZC1) (Ann Name dom_aZC0 stage_aZC1) (Ann Name dom_aZC0 stage_aZC1)
+ Language.Haskell.Tools.AST.References: qqExprName :: forall dom_a12c5 stage_a12c6. Lens (Ann UQuasiQuote dom_a12c5 stage_a12c6) (Ann UQuasiQuote dom_a12c5 stage_a12c6) (Ann UName dom_a12c5 stage_a12c6) (Ann UName dom_a12c5 stage_a12c6)
- Language.Haskell.Tools.AST.References: qqString :: forall dom_aZBY stage_aZBZ. Lens (QQString dom_aZBY stage_aZBZ) (QQString dom_aZBY stage_aZBZ) String String
+ Language.Haskell.Tools.AST.References: qqString :: forall dom_a12c3 stage_a12c4. Lens (Ann QQString dom_a12c3 stage_a12c4) (Ann QQString dom_a12c3 stage_a12c4) String String
- Language.Haskell.Tools.AST.References: qualifiers :: forall dom_aKAH stage_aKAI. Lens (QualifiedName dom_aKAH stage_aKAI) (QualifiedName dom_aKAH stage_aKAI) (AnnList UnqualName dom_aKAH stage_aKAI) (AnnList UnqualName dom_aKAH stage_aKAI)
+ Language.Haskell.Tools.AST.References: qualifiers :: forall dom_aNgZ stage_aNh0. Lens (Ann UQualifiedName dom_aNgZ stage_aNh0) (Ann UQualifiedName dom_aNgZ stage_aNh0) (AnnListG UNamePart dom_aNgZ stage_aNh0) (AnnListG UNamePart dom_aNgZ stage_aNh0)
- Language.Haskell.Tools.AST.References: quotedName :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (Ann Name dom_aPfP stage_aPfQ) (Ann Name dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: quotedName :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (Ann UName dom_aRlf stage_aRlg) (Ann UName dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: rhsCaseExpr :: forall expr_aPfD dom_aPfE stage_aPfF. Partial (CaseRhs' expr_aPfD dom_aPfE stage_aPfF) (CaseRhs' expr_aPfD dom_aPfE stage_aPfF) (Ann expr_aPfD dom_aPfE stage_aPfF) (Ann expr_aPfD dom_aPfE stage_aPfF)
+ Language.Haskell.Tools.AST.References: rhsCaseExpr :: forall expr_aRl3 dom_aRl4 stage_aRl5. Partial (Ann (UCaseRhs' expr_aRl3) dom_aRl4 stage_aRl5) (Ann (UCaseRhs' expr_aRl3) dom_aRl4 stage_aRl5) (Ann expr_aRl3 dom_aRl4 stage_aRl5) (Ann expr_aRl3 dom_aRl4 stage_aRl5)
- Language.Haskell.Tools.AST.References: rhsCaseGuards :: forall expr_aPfD dom_aPfE stage_aPfF. Partial (CaseRhs' expr_aPfD dom_aPfE stage_aPfF) (CaseRhs' expr_aPfD dom_aPfE stage_aPfF) (AnnList (GuardedCaseRhs' expr_aPfD) dom_aPfE stage_aPfF) (AnnList (GuardedCaseRhs' expr_aPfD) dom_aPfE stage_aPfF)
+ Language.Haskell.Tools.AST.References: rhsCaseGuards :: forall expr_aRl3 dom_aRl4 stage_aRl5. Partial (Ann (UCaseRhs' expr_aRl3) dom_aRl4 stage_aRl5) (Ann (UCaseRhs' expr_aRl3) dom_aRl4 stage_aRl5) (AnnListG (UGuardedCaseRhs' expr_aRl3) dom_aRl4 stage_aRl5) (AnnListG (UGuardedCaseRhs' expr_aRl3) dom_aRl4 stage_aRl5)
- Language.Haskell.Tools.AST.References: rhsExpr :: forall dom_aSq3 stage_aSq4. Partial (Rhs dom_aSq3 stage_aSq4) (Rhs dom_aSq3 stage_aSq4) (Ann Expr dom_aSq3 stage_aSq4) (Ann Expr dom_aSq3 stage_aSq4)
+ Language.Haskell.Tools.AST.References: rhsExpr :: forall dom_aUz3 stage_aUz4. Partial (Ann URhs dom_aUz3 stage_aUz4) (Ann URhs dom_aUz3 stage_aUz4) (Ann UExpr dom_aUz3 stage_aUz4) (Ann UExpr dom_aUz3 stage_aUz4)
- Language.Haskell.Tools.AST.References: rhsGuards :: forall dom_aSq3 stage_aSq4. Partial (Rhs dom_aSq3 stage_aSq4) (Rhs dom_aSq3 stage_aSq4) (AnnList GuardedRhs dom_aSq3 stage_aSq4) (AnnList GuardedRhs dom_aSq3 stage_aSq4)
+ Language.Haskell.Tools.AST.References: rhsGuards :: forall dom_aUz3 stage_aUz4. Partial (Ann URhs dom_aUz3 stage_aUz4) (Ann URhs dom_aUz3 stage_aUz4) (AnnListG UGuardedRhs dom_aUz3 stage_aUz4) (AnnListG UGuardedRhs dom_aUz3 stage_aUz4)
- Language.Haskell.Tools.AST.References: ruleBounded :: forall dom_aSpV stage_aSpW. Lens (Rule dom_aSpV stage_aSpW) (Rule dom_aSpV stage_aSpW) (AnnList TyVar dom_aSpV stage_aSpW) (AnnList TyVar dom_aSpV stage_aSpW)
+ Language.Haskell.Tools.AST.References: ruleBounded :: forall dom_aVJ1 stage_aVJ2. Lens (Ann URule dom_aVJ1 stage_aVJ2) (Ann URule dom_aVJ1 stage_aVJ2) (AnnListG UTyVar dom_aVJ1 stage_aVJ2) (AnnListG UTyVar dom_aVJ1 stage_aVJ2)
- Language.Haskell.Tools.AST.References: ruleLhs :: forall dom_aSpV stage_aSpW. Lens (Rule dom_aSpV stage_aSpW) (Rule dom_aSpV stage_aSpW) (Ann Expr dom_aSpV stage_aSpW) (Ann Expr dom_aSpV stage_aSpW)
+ Language.Haskell.Tools.AST.References: ruleLhs :: forall dom_aVJ1 stage_aVJ2. Lens (Ann URule dom_aVJ1 stage_aVJ2) (Ann URule dom_aVJ1 stage_aVJ2) (Ann UExpr dom_aVJ1 stage_aVJ2) (Ann UExpr dom_aVJ1 stage_aVJ2)
- Language.Haskell.Tools.AST.References: ruleName :: forall dom_aSpV stage_aSpW. Lens (Rule dom_aSpV stage_aSpW) (Rule dom_aSpV stage_aSpW) (Ann StringNode dom_aSpV stage_aSpW) (Ann StringNode dom_aSpV stage_aSpW)
+ Language.Haskell.Tools.AST.References: ruleName :: forall dom_aVJ1 stage_aVJ2. Lens (Ann URule dom_aVJ1 stage_aVJ2) (Ann URule dom_aVJ1 stage_aVJ2) (Ann UStringNode dom_aVJ1 stage_aVJ2) (Ann UStringNode dom_aVJ1 stage_aVJ2)
- Language.Haskell.Tools.AST.References: rulePhase :: forall dom_aSpV stage_aSpW. Lens (Rule dom_aSpV stage_aSpW) (Rule dom_aSpV stage_aSpW) (AnnMaybe PhaseControl dom_aSpV stage_aSpW) (AnnMaybe PhaseControl dom_aSpV stage_aSpW)
+ Language.Haskell.Tools.AST.References: rulePhase :: forall dom_aVJ1 stage_aVJ2. Lens (Ann URule dom_aVJ1 stage_aVJ2) (Ann URule dom_aVJ1 stage_aVJ2) (AnnMaybeG UPhaseControl dom_aVJ1 stage_aVJ2) (AnnMaybeG UPhaseControl dom_aVJ1 stage_aVJ2)
- Language.Haskell.Tools.AST.References: ruleRhs :: forall dom_aSpV stage_aSpW. Lens (Rule dom_aSpV stage_aSpW) (Rule dom_aSpV stage_aSpW) (Ann Expr dom_aSpV stage_aSpW) (Ann Expr dom_aSpV stage_aSpW)
+ Language.Haskell.Tools.AST.References: ruleRhs :: forall dom_aVJ1 stage_aVJ2. Lens (Ann URule dom_aVJ1 stage_aVJ2) (Ann URule dom_aVJ1 stage_aVJ2) (Ann UExpr dom_aVJ1 stage_aVJ2) (Ann UExpr dom_aVJ1 stage_aVJ2)
- Language.Haskell.Tools.AST.References: simpleName :: forall dom_aKAJ stage_aKAK dom'_a5bG5 stage'_a5bG6. Lens (Name dom_aKAJ stage_aKAK) (Name dom'_a5bG5 stage'_a5bG6) (Ann QualifiedName dom_aKAJ stage_aKAK) (Ann QualifiedName dom'_a5bG5 stage'_a5bG6)
+ Language.Haskell.Tools.AST.References: simpleName :: forall dom_aNh1 stage_aNh2 dom'_a4Ah1 stage'_a4Ah2. Lens (Ann UName dom_aNh1 stage_aNh2) (Ann UName dom_aNh1 stage_aNh2) (Ann UQualifiedName dom_aNh1 stage_aNh2) (Ann UQualifiedName dom_aNh1 stage_aNh2)
- Language.Haskell.Tools.AST.References: simpleNameStr :: forall dom_aKAF stage_aKAG. Lens (UnqualName dom_aKAF stage_aKAG) (UnqualName dom_aKAF stage_aKAG) String String
+ Language.Haskell.Tools.AST.References: simpleNameStr :: forall dom_aNgX stage_aNgY. Lens (Ann UNamePart dom_aNgX stage_aNgY) (Ann UNamePart dom_aNgX stage_aNgY) String String
- Language.Haskell.Tools.AST.References: specializeDef :: forall dom_aSpX stage_aSpY. Partial (TopLevelPragma dom_aSpX stage_aSpY) (TopLevelPragma dom_aSpX stage_aSpY) (Ann Name dom_aSpX stage_aSpY) (Ann Name dom_aSpX stage_aSpY)
+ Language.Haskell.Tools.AST.References: specializeDef :: forall dom_aVJ3 stage_aVJ4. Partial (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann UName dom_aVJ3 stage_aVJ4) (Ann UName dom_aVJ3 stage_aVJ4)
- Language.Haskell.Tools.AST.References: specializeInstanceType :: forall dom_aUp2 stage_aUp3. Partial (InstBodyDecl dom_aUp2 stage_aUp3) (InstBodyDecl dom_aUp2 stage_aUp3) (Ann Type dom_aUp2 stage_aUp3) (Ann Type dom_aUp2 stage_aUp3)
+ Language.Haskell.Tools.AST.References: specializeInstanceType :: forall dom_aVJR stage_aVJS. Partial (Ann UInstBodyDecl dom_aVJR stage_aVJS) (Ann UInstBodyDecl dom_aVJR stage_aVJS) (Ann UType dom_aVJR stage_aVJS) (Ann UType dom_aVJR stage_aVJS)
- Language.Haskell.Tools.AST.References: specializeType :: forall dom_aSpX stage_aSpY. Partial (TopLevelPragma dom_aSpX stage_aSpY) (TopLevelPragma dom_aSpX stage_aSpY) (AnnList Type dom_aSpX stage_aSpY) (AnnList Type dom_aSpX stage_aSpY)
+ Language.Haskell.Tools.AST.References: specializeType :: forall dom_aVJ3 stage_aVJ4. Partial (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (Ann UTopLevelPragma dom_aVJ3 stage_aVJ4) (AnnListG UType dom_aVJ3 stage_aVJ4) (AnnListG UType dom_aVJ3 stage_aVJ4)
- Language.Haskell.Tools.AST.References: spliceExpr :: forall dom_aZC2 stage_aZC3. Partial (Splice dom_aZC2 stage_aZC3) (Splice dom_aZC2 stage_aZC3) (Ann Expr dom_aZC2 stage_aZC3) (Ann Expr dom_aZC2 stage_aZC3)
+ Language.Haskell.Tools.AST.References: spliceExpr :: forall dom_a12c7 stage_a12c8. Partial (Ann USplice dom_a12c7 stage_a12c8) (Ann USplice dom_a12c7 stage_a12c8) (Ann UExpr dom_a12c7 stage_a12c8) (Ann UExpr dom_a12c7 stage_a12c8)
- Language.Haskell.Tools.AST.References: spliceId :: forall dom_aZC2 stage_aZC3. Partial (Splice dom_aZC2 stage_aZC3) (Splice dom_aZC2 stage_aZC3) (Ann Name dom_aZC2 stage_aZC3) (Ann Name dom_aZC2 stage_aZC3)
+ Language.Haskell.Tools.AST.References: spliceId :: forall dom_a12c7 stage_a12c8. Partial (Ann USplice dom_a12c7 stage_a12c8) (Ann USplice dom_a12c7 stage_a12c8) (Ann UName dom_a12c7 stage_a12c8) (Ann UName dom_a12c7 stage_a12c8)
- Language.Haskell.Tools.AST.References: srFileName :: forall dom_aPfw stage_aPfx. Lens (SourceRange dom_aPfw stage_aPfx) (SourceRange dom_aPfw stage_aPfx) (Ann StringNode dom_aPfw stage_aPfx) (Ann StringNode dom_aPfw stage_aPfx)
+ Language.Haskell.Tools.AST.References: srFileName :: forall dom_aRkW stage_aRkX. Lens (Ann USourceRange dom_aRkW stage_aRkX) (Ann USourceRange dom_aRkW stage_aRkX) (Ann UStringNode dom_aRkW stage_aRkX) (Ann UStringNode dom_aRkW stage_aRkX)
- Language.Haskell.Tools.AST.References: srFromCol :: forall dom_aPfw stage_aPfx. Lens (SourceRange dom_aPfw stage_aPfx) (SourceRange dom_aPfw stage_aPfx) (Ann Number dom_aPfw stage_aPfx) (Ann Number dom_aPfw stage_aPfx)
+ Language.Haskell.Tools.AST.References: srFromCol :: forall dom_aRkW stage_aRkX. Lens (Ann USourceRange dom_aRkW stage_aRkX) (Ann USourceRange dom_aRkW stage_aRkX) (Ann Number dom_aRkW stage_aRkX) (Ann Number dom_aRkW stage_aRkX)
- Language.Haskell.Tools.AST.References: srFromLine :: forall dom_aPfw stage_aPfx. Lens (SourceRange dom_aPfw stage_aPfx) (SourceRange dom_aPfw stage_aPfx) (Ann Number dom_aPfw stage_aPfx) (Ann Number dom_aPfw stage_aPfx)
+ Language.Haskell.Tools.AST.References: srFromLine :: forall dom_aRkW stage_aRkX. Lens (Ann USourceRange dom_aRkW stage_aRkX) (Ann USourceRange dom_aRkW stage_aRkX) (Ann Number dom_aRkW stage_aRkX) (Ann Number dom_aRkW stage_aRkX)
- Language.Haskell.Tools.AST.References: srToCol :: forall dom_aPfw stage_aPfx. Lens (SourceRange dom_aPfw stage_aPfx) (SourceRange dom_aPfw stage_aPfx) (Ann Number dom_aPfw stage_aPfx) (Ann Number dom_aPfw stage_aPfx)
+ Language.Haskell.Tools.AST.References: srToCol :: forall dom_aRkW stage_aRkX. Lens (Ann USourceRange dom_aRkW stage_aRkX) (Ann USourceRange dom_aRkW stage_aRkX) (Ann Number dom_aRkW stage_aRkX) (Ann Number dom_aRkW stage_aRkX)
- Language.Haskell.Tools.AST.References: srToLine :: forall dom_aPfw stage_aPfx. Lens (SourceRange dom_aPfw stage_aPfx) (SourceRange dom_aPfw stage_aPfx) (Ann Number dom_aPfw stage_aPfx) (Ann Number dom_aPfw stage_aPfx)
+ Language.Haskell.Tools.AST.References: srToLine :: forall dom_aRkW stage_aRkX. Lens (Ann USourceRange dom_aRkW stage_aRkX) (Ann USourceRange dom_aRkW stage_aRkX) (Ann Number dom_aRkW stage_aRkX) (Ann Number dom_aRkW stage_aRkX)
- Language.Haskell.Tools.AST.References: stmtBinds :: forall expr_aOOD dom_aOOE stage_aOOF. Partial (Stmt' expr_aOOD dom_aOOE stage_aOOF) (Stmt' expr_aOOD dom_aOOE stage_aOOF) (AnnList LocalBind dom_aOOE stage_aOOF) (AnnList LocalBind dom_aOOE stage_aOOF)
+ Language.Haskell.Tools.AST.References: stmtBinds :: forall expr_aQSl dom_aQSm stage_aQSn. Partial (Ann (UStmt' expr_aQSl) dom_aQSm stage_aQSn) (Ann (UStmt' expr_aQSl) dom_aQSm stage_aQSn) (AnnListG ULocalBind dom_aQSm stage_aQSn) (AnnListG ULocalBind dom_aQSm stage_aQSn)
- Language.Haskell.Tools.AST.References: stmtExpr :: forall expr_aOOD dom_aOOE stage_aOOF. Partial (Stmt' expr_aOOD dom_aOOE stage_aOOF) (Stmt' expr_aOOD dom_aOOE stage_aOOF) (Ann expr_aOOD dom_aOOE stage_aOOF) (Ann expr_aOOD dom_aOOE stage_aOOF)
+ Language.Haskell.Tools.AST.References: stmtExpr :: forall expr_aQSl dom_aQSm stage_aQSn. Partial (Ann (UStmt' expr_aQSl) dom_aQSm stage_aQSn) (Ann (UStmt' expr_aQSl) dom_aQSm stage_aQSn) (Ann expr_aQSl dom_aQSm stage_aQSn) (Ann expr_aQSl dom_aQSm stage_aQSn)
- Language.Haskell.Tools.AST.References: stmtPattern :: forall expr_aOOD dom_aOOE stage_aOOF. Partial (Stmt' expr_aOOD dom_aOOE stage_aOOF) (Stmt' expr_aOOD dom_aOOE stage_aOOF) (Ann Pattern dom_aOOE stage_aOOF) (Ann Pattern dom_aOOE stage_aOOF)
+ Language.Haskell.Tools.AST.References: stmtPattern :: forall expr_aQSl dom_aQSm stage_aQSn. Partial (Ann (UStmt' expr_aQSl) dom_aQSm stage_aQSn) (Ann (UStmt' expr_aQSl) dom_aQSm stage_aQSn) (Ann UPattern dom_aQSm stage_aQSn) (Ann UPattern dom_aQSm stage_aQSn)
- Language.Haskell.Tools.AST.References: stringLitValue :: forall dom_aLGs stage_aLGt. Partial (Literal dom_aLGs stage_aLGt) (Literal dom_aLGs stage_aLGt) String String
+ Language.Haskell.Tools.AST.References: stringLitValue :: forall dom_aNJY stage_aNJZ. Partial (Ann ULiteral dom_aNJY stage_aNJZ) (Ann ULiteral dom_aNJY stage_aNJZ) String String
- Language.Haskell.Tools.AST.References: stringNodeStr :: forall dom_aKAD stage_aKAE. Lens (StringNode dom_aKAD stage_aKAE) (StringNode dom_aKAD stage_aKAE) String String
+ Language.Haskell.Tools.AST.References: stringNodeStr :: forall dom_aNgV stage_aNgW. Lens (Ann UStringNode dom_aNgV stage_aNgW) (Ann UStringNode dom_aNgV stage_aNgW) String String
- Language.Haskell.Tools.AST.References: teLhs :: forall dom_aUoI stage_aUoJ. Lens (TypeEqn dom_aUoI stage_aUoJ) (TypeEqn dom_aUoI stage_aUoJ) (Ann Type dom_aUoI stage_aUoJ) (Ann Type dom_aUoI stage_aUoJ)
+ Language.Haskell.Tools.AST.References: teLhs :: forall dom_aVJH stage_aVJI. Lens (Ann UTypeEqn dom_aVJH stage_aVJI) (Ann UTypeEqn dom_aVJH stage_aVJI) (Ann UType dom_aVJH stage_aVJI) (Ann UType dom_aVJH stage_aVJI)
- Language.Haskell.Tools.AST.References: teRhs :: forall dom_aUoI stage_aUoJ. Lens (TypeEqn dom_aUoI stage_aUoJ) (TypeEqn dom_aUoI stage_aUoJ) (Ann Type dom_aUoI stage_aUoJ) (Ann Type dom_aUoI stage_aUoJ)
+ Language.Haskell.Tools.AST.References: teRhs :: forall dom_aVJH stage_aVJI. Lens (Ann UTypeEqn dom_aVJH stage_aVJI) (Ann UTypeEqn dom_aVJH stage_aVJI) (Ann UType dom_aVJH stage_aVJI) (Ann UType dom_aVJH stage_aVJI)
- Language.Haskell.Tools.AST.References: tfHead :: forall dom_aUpg stage_aUph. Lens (TypeFamily dom_aUpg stage_aUph) (TypeFamily dom_aUpg stage_aUph) (Ann DeclHead dom_aUpg stage_aUph) (Ann DeclHead dom_aUpg stage_aUph)
+ Language.Haskell.Tools.AST.References: tfHead :: forall dom_aVJN stage_aVJO. Lens (Ann UTypeFamily dom_aVJN stage_aVJO) (Ann UTypeFamily dom_aVJN stage_aVJO) (Ann UDeclHead dom_aVJN stage_aVJO) (Ann UDeclHead dom_aVJN stage_aVJO)
- Language.Haskell.Tools.AST.References: tfInjectivity :: forall dom_aUpe stage_aUpf. Partial (TypeFamilySpec dom_aUpe stage_aUpf) (TypeFamilySpec dom_aUpe stage_aUpf) (Ann InjectivityAnn dom_aUpe stage_aUpf) (Ann InjectivityAnn dom_aUpe stage_aUpf)
+ Language.Haskell.Tools.AST.References: tfInjectivity :: forall dom_aVJL stage_aVJM. Partial (Ann UTypeFamilySpec dom_aVJL stage_aVJM) (Ann UTypeFamilySpec dom_aVJL stage_aVJM) (Ann UInjectivityAnn dom_aVJL stage_aVJM) (Ann UInjectivityAnn dom_aVJL stage_aVJM)
- Language.Haskell.Tools.AST.References: tfKind :: forall dom_aUpg stage_aUph. Partial (TypeFamily dom_aUpg stage_aUph) (TypeFamily dom_aUpg stage_aUph) (AnnMaybe KindConstraint dom_aUpg stage_aUph) (AnnMaybe KindConstraint dom_aUpg stage_aUph)
+ Language.Haskell.Tools.AST.References: tfKind :: forall dom_aVJN stage_aVJO. Partial (Ann UTypeFamily dom_aVJN stage_aVJO) (Ann UTypeFamily dom_aVJN stage_aVJO) (AnnMaybeG UKindConstraint dom_aVJN stage_aVJO) (AnnMaybeG UKindConstraint dom_aVJN stage_aVJO)
- Language.Haskell.Tools.AST.References: tfSpec :: forall dom_aUpg stage_aUph. Partial (TypeFamily dom_aUpg stage_aUph) (TypeFamily dom_aUpg stage_aUph) (AnnMaybe TypeFamilySpec dom_aUpg stage_aUph) (AnnMaybe TypeFamilySpec dom_aUpg stage_aUph)
+ Language.Haskell.Tools.AST.References: tfSpec :: forall dom_aVJN stage_aVJO. Partial (Ann UTypeFamily dom_aVJN stage_aVJO) (Ann UTypeFamily dom_aVJN stage_aVJO) (AnnMaybeG UTypeFamilySpec dom_aVJN stage_aVJO) (AnnMaybeG UTypeFamilySpec dom_aVJN stage_aVJO)
- Language.Haskell.Tools.AST.References: tfSpecKind :: forall dom_aUpe stage_aUpf. Partial (TypeFamilySpec dom_aUpe stage_aUpf) (TypeFamilySpec dom_aUpe stage_aUpf) (Ann KindConstraint dom_aUpe stage_aUpf) (Ann KindConstraint dom_aUpe stage_aUpf)
+ Language.Haskell.Tools.AST.References: tfSpecKind :: forall dom_aVJL stage_aVJM. Partial (Ann UTypeFamilySpec dom_aVJL stage_aVJM) (Ann UTypeFamilySpec dom_aVJL stage_aVJM) (Ann UKindConstraint dom_aVJL stage_aVJM) (Ann UKindConstraint dom_aVJL stage_aVJM)
- Language.Haskell.Tools.AST.References: thenExpr :: forall dom_aOOz stage_aOOA. Partial (CompStmt dom_aOOz stage_aOOA) (CompStmt dom_aOOz stage_aOOA) (Ann Expr dom_aOOz stage_aOOA) (Ann Expr dom_aOOz stage_aOOA)
+ Language.Haskell.Tools.AST.References: thenExpr :: forall dom_aQSh stage_aQSi. Partial (Ann UCompStmt dom_aQSh stage_aQSi) (Ann UCompStmt dom_aQSh stage_aQSi) (Ann UExpr dom_aQSh stage_aQSi) (Ann UExpr dom_aQSh stage_aQSi)
- Language.Haskell.Tools.AST.References: tpPromoted :: forall dom_aMDI stage_aMDJ. Partial (Type dom_aMDI stage_aMDJ) (Type dom_aMDI stage_aMDJ) (Ann (Promoted Type) dom_aMDI stage_aMDJ) (Ann (Promoted Type) dom_aMDI stage_aMDJ)
+ Language.Haskell.Tools.AST.References: tpPromoted :: forall dom_aOHe stage_aOHf. Partial (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann (UPromoted UType) dom_aOHe stage_aOHf) (Ann (UPromoted UType) dom_aOHe stage_aOHf)
- Language.Haskell.Tools.AST.References: tsName :: forall dom_aSq7 stage_aSq8. Lens (TypeSignature dom_aSq7 stage_aSq8) (TypeSignature dom_aSq7 stage_aSq8) (AnnList Name dom_aSq7 stage_aSq8) (AnnList Name dom_aSq7 stage_aSq8)
+ Language.Haskell.Tools.AST.References: tsName :: forall dom_aUzb stage_aUzc. Lens (Ann UTypeSignature dom_aUzb stage_aUzc) (Ann UTypeSignature dom_aUzb stage_aUzc) (AnnListG UName dom_aUzb stage_aUzc) (AnnListG UName dom_aUzb stage_aUzc)
- Language.Haskell.Tools.AST.References: tsSplice :: forall dom_aMDI stage_aMDJ. Partial (Type dom_aMDI stage_aMDJ) (Type dom_aMDI stage_aMDJ) (Splice dom_aMDI stage_aMDJ) (Splice dom_aMDI stage_aMDJ)
+ Language.Haskell.Tools.AST.References: tsSplice :: forall dom_aOHe stage_aOHf. Partial (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann USplice dom_aOHe stage_aOHf) (Ann USplice dom_aOHe stage_aOHf)
- Language.Haskell.Tools.AST.References: tsType :: forall dom_aSq7 stage_aSq8. Lens (TypeSignature dom_aSq7 stage_aSq8) (TypeSignature dom_aSq7 stage_aSq8) (Ann Type dom_aSq7 stage_aSq8) (Ann Type dom_aSq7 stage_aSq8)
+ Language.Haskell.Tools.AST.References: tsType :: forall dom_aUzb stage_aUzc. Lens (Ann UTypeSignature dom_aUzb stage_aUzc) (Ann UTypeSignature dom_aUzb stage_aUzc) (Ann UType dom_aUzb stage_aUzc) (Ann UType dom_aUzb stage_aUzc)
- Language.Haskell.Tools.AST.References: tupSecExpr :: forall dom_aPfJ stage_aPfK dom'_a5aIB stage'_a5aIC. Partial (TupSecElem dom_aPfJ stage_aPfK) (TupSecElem dom'_a5aIB stage'_a5aIC) (Ann Expr dom_aPfJ stage_aPfK) (Ann Expr dom'_a5aIB stage'_a5aIC)
+ Language.Haskell.Tools.AST.References: tupSecExpr :: forall dom_aRl9 stage_aRla dom'_a4ykm stage'_a4ykn. Partial (Ann UTupSecElem dom_aRl9 stage_aRla) (Ann UTupSecElem dom_aRl9 stage_aRla) (Ann UExpr dom_aRl9 stage_aRla) (Ann UExpr dom_aRl9 stage_aRla)
- Language.Haskell.Tools.AST.References: tupleElems :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (AnnList Expr dom_aPfP stage_aPfQ) (AnnList Expr dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: tupleElems :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (AnnListG UExpr dom_aRlf stage_aRlg) (AnnListG UExpr dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: tupleSectionElems :: forall dom_aPfP stage_aPfQ. Partial (Expr dom_aPfP stage_aPfQ) (Expr dom_aPfP stage_aPfQ) (AnnList TupSecElem dom_aPfP stage_aPfQ) (AnnList TupSecElem dom_aPfP stage_aPfQ)
+ Language.Haskell.Tools.AST.References: tupleSectionElems :: forall dom_aRlf stage_aRlg. Partial (Ann UExpr dom_aRlf stage_aRlg) (Ann UExpr dom_aRlf stage_aRlg) (AnnListG UTupSecElem dom_aRlf stage_aRlg) (AnnListG UTupSecElem dom_aRlf stage_aRlg)
- Language.Haskell.Tools.AST.References: tyVarKind :: forall dom_aMDK stage_aMDL. Lens (TyVar dom_aMDK stage_aMDL) (TyVar dom_aMDK stage_aMDL) (AnnMaybe KindConstraint dom_aMDK stage_aMDL) (AnnMaybe KindConstraint dom_aMDK stage_aMDL)
+ Language.Haskell.Tools.AST.References: tyVarKind :: forall dom_aOHg stage_aOHh. Lens (Ann UTyVar dom_aOHg stage_aOHh) (Ann UTyVar dom_aOHg stage_aOHh) (AnnMaybeG UKindConstraint dom_aOHg stage_aOHh) (AnnMaybeG UKindConstraint dom_aOHg stage_aOHh)
- Language.Haskell.Tools.AST.References: tyVarName :: forall dom_aMDK stage_aMDL. Lens (TyVar dom_aMDK stage_aMDL) (TyVar dom_aMDK stage_aMDL) (Ann Name dom_aMDK stage_aMDL) (Ann Name dom_aMDK stage_aMDL)
+ Language.Haskell.Tools.AST.References: tyVarName :: forall dom_aOHg stage_aOHh. Lens (Ann UTyVar dom_aOHg stage_aOHh) (Ann UTyVar dom_aOHg stage_aOHh) (Ann UName dom_aOHg stage_aOHh) (Ann UName dom_aOHg stage_aOHh)
- Language.Haskell.Tools.AST.References: typeArg :: forall dom_aMDI stage_aMDJ. Partial (Type dom_aMDI stage_aMDJ) (Type dom_aMDI stage_aMDJ) (Ann Type dom_aMDI stage_aMDJ) (Ann Type dom_aMDI stage_aMDJ)
+ Language.Haskell.Tools.AST.References: typeArg :: forall dom_aOHe stage_aOHf. Partial (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf)
- Language.Haskell.Tools.AST.References: typeBounded :: forall dom_aMDI stage_aMDJ. Partial (Type dom_aMDI stage_aMDJ) (Type dom_aMDI stage_aMDJ) (AnnList TyVar dom_aMDI stage_aMDJ) (AnnList TyVar dom_aMDI stage_aMDJ)
+ Language.Haskell.Tools.AST.References: typeBounded :: forall dom_aOHe stage_aOHf. Partial (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (AnnListG UTyVar dom_aOHe stage_aOHf) (AnnListG UTyVar dom_aOHe stage_aOHf)
- Language.Haskell.Tools.AST.References: typeCon :: forall dom_aMDI stage_aMDJ. Partial (Type dom_aMDI stage_aMDJ) (Type dom_aMDI stage_aMDJ) (Ann Type dom_aMDI stage_aMDJ) (Ann Type dom_aMDI stage_aMDJ)
+ Language.Haskell.Tools.AST.References: typeCon :: forall dom_aOHe stage_aOHf. Partial (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf)
- Language.Haskell.Tools.AST.References: typeCtx :: forall dom_aMDI stage_aMDJ. Partial (Type dom_aMDI stage_aMDJ) (Type dom_aMDI stage_aMDJ) (Ann Context dom_aMDI stage_aMDJ) (Ann Context dom_aMDI stage_aMDJ)
+ Language.Haskell.Tools.AST.References: typeCtx :: forall dom_aOHe stage_aOHf. Partial (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UContext dom_aOHe stage_aOHf) (Ann UContext dom_aOHe stage_aOHf)
- Language.Haskell.Tools.AST.References: typeElement :: forall dom_aMDI stage_aMDJ. Partial (Type dom_aMDI stage_aMDJ) (Type dom_aMDI stage_aMDJ) (Ann Type dom_aMDI stage_aMDJ) (Ann Type dom_aMDI stage_aMDJ)
+ Language.Haskell.Tools.AST.References: typeElement :: forall dom_aOHe stage_aOHf. Partial (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf)
- Language.Haskell.Tools.AST.References: typeElements :: forall dom_aMDI stage_aMDJ. Partial (Type dom_aMDI stage_aMDJ) (Type dom_aMDI stage_aMDJ) (AnnList Type dom_aMDI stage_aMDJ) (AnnList Type dom_aMDI stage_aMDJ)
+ Language.Haskell.Tools.AST.References: typeElements :: forall dom_aOHe stage_aOHf. Partial (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (AnnListG UType dom_aOHe stage_aOHf) (AnnListG UType dom_aOHe stage_aOHf)
- Language.Haskell.Tools.AST.References: typeInner :: forall dom_aMDI stage_aMDJ. Partial (Type dom_aMDI stage_aMDJ) (Type dom_aMDI stage_aMDJ) (Ann Type dom_aMDI stage_aMDJ) (Ann Type dom_aMDI stage_aMDJ)
+ Language.Haskell.Tools.AST.References: typeInner :: forall dom_aOHe stage_aOHf. Partial (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf)
- Language.Haskell.Tools.AST.References: typeKind :: forall dom_aMDI stage_aMDJ. Partial (Type dom_aMDI stage_aMDJ) (Type dom_aMDI stage_aMDJ) (Ann Kind dom_aMDI stage_aMDJ) (Ann Kind dom_aMDI stage_aMDJ)
+ Language.Haskell.Tools.AST.References: typeKind :: forall dom_aOHe stage_aOHf. Partial (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UKind dom_aOHe stage_aOHf) (Ann UKind dom_aOHe stage_aOHf)
- Language.Haskell.Tools.AST.References: typeLeft :: forall dom_aMDI stage_aMDJ. Partial (Type dom_aMDI stage_aMDJ) (Type dom_aMDI stage_aMDJ) (Ann Type dom_aMDI stage_aMDJ) (Ann Type dom_aMDI stage_aMDJ)
+ Language.Haskell.Tools.AST.References: typeLeft :: forall dom_aOHe stage_aOHf. Partial (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf)
- Language.Haskell.Tools.AST.References: typeName :: forall dom_aMDI stage_aMDJ. Partial (Type dom_aMDI stage_aMDJ) (Type dom_aMDI stage_aMDJ) (Ann Name dom_aMDI stage_aMDJ) (Ann Name dom_aMDI stage_aMDJ)
+ Language.Haskell.Tools.AST.References: typeName :: forall dom_aOHe stage_aOHf. Partial (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UName dom_aOHe stage_aOHf) (Ann UName dom_aOHe stage_aOHf)
- Language.Haskell.Tools.AST.References: typeOperator :: forall dom_aMDI stage_aMDJ. Partial (Type dom_aMDI stage_aMDJ) (Type dom_aMDI stage_aMDJ) (Ann Operator dom_aMDI stage_aMDJ) (Ann Operator dom_aMDI stage_aMDJ)
+ Language.Haskell.Tools.AST.References: typeOperator :: forall dom_aOHe stage_aOHf. Partial (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UOperator dom_aOHe stage_aOHf) (Ann UOperator dom_aOHe stage_aOHf)
- Language.Haskell.Tools.AST.References: typeParam :: forall dom_aMDI stage_aMDJ. Partial (Type dom_aMDI stage_aMDJ) (Type dom_aMDI stage_aMDJ) (Ann Type dom_aMDI stage_aMDJ) (Ann Type dom_aMDI stage_aMDJ)
+ Language.Haskell.Tools.AST.References: typeParam :: forall dom_aOHe stage_aOHf. Partial (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf)
- Language.Haskell.Tools.AST.References: typeQQ :: forall dom_aMDI stage_aMDJ. Partial (Type dom_aMDI stage_aMDJ) (Type dom_aMDI stage_aMDJ) (QuasiQuote dom_aMDI stage_aMDJ) (QuasiQuote dom_aMDI stage_aMDJ)
+ Language.Haskell.Tools.AST.References: typeQQ :: forall dom_aOHe stage_aOHf. Partial (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UQuasiQuote dom_aOHe stage_aOHf) (Ann UQuasiQuote dom_aOHe stage_aOHf)
- Language.Haskell.Tools.AST.References: typeResult :: forall dom_aMDI stage_aMDJ. Partial (Type dom_aMDI stage_aMDJ) (Type dom_aMDI stage_aMDJ) (Ann Type dom_aMDI stage_aMDJ) (Ann Type dom_aMDI stage_aMDJ)
+ Language.Haskell.Tools.AST.References: typeResult :: forall dom_aOHe stage_aOHf. Partial (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf)
- Language.Haskell.Tools.AST.References: typeRight :: forall dom_aMDI stage_aMDJ. Partial (Type dom_aMDI stage_aMDJ) (Type dom_aMDI stage_aMDJ) (Ann Type dom_aMDI stage_aMDJ) (Ann Type dom_aMDI stage_aMDJ)
+ Language.Haskell.Tools.AST.References: typeRight :: forall dom_aOHe stage_aOHf. Partial (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf)
- Language.Haskell.Tools.AST.References: typeType :: forall dom_aMDI stage_aMDJ. Partial (Type dom_aMDI stage_aMDJ) (Type dom_aMDI stage_aMDJ) (Ann Type dom_aMDI stage_aMDJ) (Ann Type dom_aMDI stage_aMDJ)
+ Language.Haskell.Tools.AST.References: typeType :: forall dom_aOHe stage_aOHf. Partial (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf)
- Language.Haskell.Tools.AST.References: typeWildcardName :: forall dom_aMDI stage_aMDJ. Partial (Type dom_aMDI stage_aMDJ) (Type dom_aMDI stage_aMDJ) (Ann Name dom_aMDI stage_aMDJ) (Ann Name dom_aMDI stage_aMDJ)
+ Language.Haskell.Tools.AST.References: typeWildcardName :: forall dom_aOHe stage_aOHf. Partial (Ann UType dom_aOHe stage_aOHf) (Ann UType dom_aOHe stage_aOHf) (Ann UName dom_aOHe stage_aOHf) (Ann UName dom_aOHe stage_aOHf)
- Language.Haskell.Tools.AST.References: unqualifiedName :: forall dom_aKAH stage_aKAI. Lens (QualifiedName dom_aKAH stage_aKAI) (QualifiedName dom_aKAH stage_aKAI) (Ann UnqualName dom_aKAH stage_aKAI) (Ann UnqualName dom_aKAH stage_aKAI)
+ Language.Haskell.Tools.AST.References: unqualifiedName :: forall dom_aNgZ stage_aNh0. Lens (Ann UQualifiedName dom_aNgZ stage_aNh0) (Ann UQualifiedName dom_aNgZ stage_aNh0) (Ann UNamePart dom_aNgZ stage_aNh0) (Ann UNamePart dom_aNgZ stage_aNh0)
- Language.Haskell.Tools.AST.References: usingExpr :: forall dom_aOOz stage_aOOA. Partial (CompStmt dom_aOOz stage_aOOA) (CompStmt dom_aOOz stage_aOOA) (AnnMaybe Expr dom_aOOz stage_aOOA) (AnnMaybe Expr dom_aOOz stage_aOOA)
+ Language.Haskell.Tools.AST.References: usingExpr :: forall dom_aQSh stage_aQSi. Partial (Ann UCompStmt dom_aQSh stage_aQSi) (Ann UCompStmt dom_aQSh stage_aQSi) (AnnMaybeG UExpr dom_aQSh stage_aQSi) (AnnMaybeG UExpr dom_aQSh stage_aQSi)
- Language.Haskell.Tools.AST.References: valBindLocals :: forall dom_aSqh stage_aSqi. Partial (ValueBind dom_aSqh stage_aSqi) (ValueBind dom_aSqh stage_aSqi) (AnnMaybe LocalBinds dom_aSqh stage_aSqi) (AnnMaybe LocalBinds dom_aSqh stage_aSqi)
+ Language.Haskell.Tools.AST.References: valBindLocals :: forall dom_aUzl stage_aUzm. Partial (Ann UValueBind dom_aUzl stage_aUzm) (Ann UValueBind dom_aUzl stage_aUzm) (AnnMaybeG ULocalBinds dom_aUzl stage_aUzm) (AnnMaybeG ULocalBinds dom_aUzl stage_aUzm)
- Language.Haskell.Tools.AST.References: valBindPat :: forall dom_aSqh stage_aSqi. Partial (ValueBind dom_aSqh stage_aSqi) (ValueBind dom_aSqh stage_aSqi) (Ann Pattern dom_aSqh stage_aSqi) (Ann Pattern dom_aSqh stage_aSqi)
+ Language.Haskell.Tools.AST.References: valBindPat :: forall dom_aUzl stage_aUzm. Partial (Ann UValueBind dom_aUzl stage_aUzm) (Ann UValueBind dom_aUzl stage_aUzm) (Ann UPattern dom_aUzl stage_aUzm) (Ann UPattern dom_aUzl stage_aUzm)
- Language.Haskell.Tools.AST.References: valBindRhs :: forall dom_aSqh stage_aSqi. Partial (ValueBind dom_aSqh stage_aSqi) (ValueBind dom_aSqh stage_aSqi) (Ann Rhs dom_aSqh stage_aSqi) (Ann Rhs dom_aSqh stage_aSqi)
+ Language.Haskell.Tools.AST.References: valBindRhs :: forall dom_aUzl stage_aUzm. Partial (Ann UValueBind dom_aUzl stage_aUzm) (Ann UValueBind dom_aUzl stage_aUzm) (Ann URhs dom_aUzl stage_aUzm) (Ann URhs dom_aUzl stage_aUzm)
- Language.Haskell.Tools.AST.SemaInfoClasses: type HasDefiningInfo dom = (Domain dom, HasDefiningInfo' (SemanticInfo dom QualifiedName))
+ Language.Haskell.Tools.AST.SemaInfoClasses: type HasDefiningInfo dom = (Domain dom, HasDefiningInfo' (SemanticInfo dom UQualifiedName))
- Language.Haskell.Tools.AST.SemaInfoClasses: type HasFixityInfo dom = (Domain dom, HasFixityInfo' (SemanticInfo dom QualifiedName))
+ Language.Haskell.Tools.AST.SemaInfoClasses: type HasFixityInfo dom = (Domain dom, HasFixityInfo' (SemanticInfo dom UQualifiedName))
- Language.Haskell.Tools.AST.SemaInfoClasses: type HasIdInfo dom = (Domain dom, HasIdInfo' (SemanticInfo dom QualifiedName))
+ Language.Haskell.Tools.AST.SemaInfoClasses: type HasIdInfo dom = (Domain dom, HasIdInfo' (SemanticInfo dom UQualifiedName))
- Language.Haskell.Tools.AST.SemaInfoClasses: type HasImplicitFieldsInfo dom = (Domain dom, HasImplicitFieldsInfo' (SemanticInfo dom FieldWildcard))
+ Language.Haskell.Tools.AST.SemaInfoClasses: type HasImplicitFieldsInfo dom = (Domain dom, HasImplicitFieldsInfo' (SemanticInfo dom UFieldWildcard))
- Language.Haskell.Tools.AST.SemaInfoClasses: type HasImportInfo dom = (Domain dom, HasImportInfo' (SemanticInfo dom ImportDecl))
+ Language.Haskell.Tools.AST.SemaInfoClasses: type HasImportInfo dom = (Domain dom, HasImportInfo' (SemanticInfo dom UImportDecl))
- Language.Haskell.Tools.AST.SemaInfoClasses: type HasModuleInfo dom = (Domain dom, HasModuleInfo' (SemanticInfo dom Module))
+ Language.Haskell.Tools.AST.SemaInfoClasses: type HasModuleInfo dom = (Domain dom, HasModuleInfo' (SemanticInfo dom UModule))
- Language.Haskell.Tools.AST.SemaInfoClasses: type HasNameInfo dom = (Domain dom, HasNameInfo' (SemanticInfo dom QualifiedName))
+ Language.Haskell.Tools.AST.SemaInfoClasses: type HasNameInfo dom = (Domain dom, HasNameInfo' (SemanticInfo dom UQualifiedName))
- Language.Haskell.Tools.AST.SemaInfoClasses: type HasScopeInfo dom = (Domain dom, HasScopeInfo' (SemanticInfo dom QualifiedName), HasScopeInfo' (SemanticInfo dom Expr))
+ Language.Haskell.Tools.AST.SemaInfoClasses: type HasScopeInfo dom = (Domain dom, HasScopeInfo' (SemanticInfo dom UQualifiedName), HasScopeInfo' (SemanticInfo dom UExpr))
- Language.Haskell.Tools.AST.SemaInfoTypes: ambiguousName :: forall n_amI0. Partial (NameInfo n_amI0) (NameInfo n_amI0) RdrName RdrName
+ Language.Haskell.Tools.AST.SemaInfoTypes: ambiguousName :: forall n_aldX. Partial (NameInfo n_aldX) (NameInfo n_aldX) RdrName RdrName
- Language.Haskell.Tools.AST.SemaInfoTypes: availableNames :: forall n_amEh. Lens (ImportInfo n_amEh) (ImportInfo n_amEh) [n_amEh] [n_amEh]
+ Language.Haskell.Tools.AST.SemaInfoTypes: availableNames :: forall n_alaq. Lens (ImportInfo n_alaq) (ImportInfo n_alaq) [n_alaq] [n_alaq]
- Language.Haskell.Tools.AST.SemaInfoTypes: defIsBootModule :: forall n_amEi. Lens (ModuleInfo n_amEi) (ModuleInfo n_amEi) Bool Bool
+ Language.Haskell.Tools.AST.SemaInfoTypes: defIsBootModule :: forall n_alar. Lens (ModuleInfo n_alar) (ModuleInfo n_alar) Bool Bool
- Language.Haskell.Tools.AST.SemaInfoTypes: defModuleName :: forall n_amEi. Lens (ModuleInfo n_amEi) (ModuleInfo n_amEi) Module Module
+ Language.Haskell.Tools.AST.SemaInfoTypes: defModuleName :: forall n_alar. Lens (ModuleInfo n_alar) (ModuleInfo n_alar) Module Module
- Language.Haskell.Tools.AST.SemaInfoTypes: implicitName :: forall n_amI0. Partial (NameInfo n_amI0) (NameInfo n_amI0) String String
+ Language.Haskell.Tools.AST.SemaInfoTypes: implicitName :: forall n_aldX. Partial (NameInfo n_aldX) (NameInfo n_aldX) String String
- Language.Haskell.Tools.AST.SemaInfoTypes: implicitNames :: forall n_amEi n'_aoHT. Lens (ModuleInfo n_amEi) (ModuleInfo n'_aoHT) [n_amEi] [n'_aoHT]
+ Language.Haskell.Tools.AST.SemaInfoTypes: implicitNames :: forall n_alar n'_aple. Lens (ModuleInfo n_alar) (ModuleInfo n'_aple) [n_alar] [n'_aple]
- Language.Haskell.Tools.AST.SemaInfoTypes: importedModule :: forall n_amEh. Lens (ImportInfo n_amEh) (ImportInfo n_amEh) Module Module
+ Language.Haskell.Tools.AST.SemaInfoTypes: importedModule :: forall n_alaq. Lens (ImportInfo n_alaq) (ImportInfo n_alaq) Module Module
- Language.Haskell.Tools.AST.SemaInfoTypes: importedNames :: forall n_amEh. Lens (ImportInfo n_amEh) (ImportInfo n_amEh) [n_amEh] [n_amEh]
+ Language.Haskell.Tools.AST.SemaInfoTypes: importedNames :: forall n_alaq. Lens (ImportInfo n_alaq) (ImportInfo n_alaq) [n_alaq] [n_alaq]
- Language.Haskell.Tools.AST.SemaInfoTypes: nameInfo :: forall n_amI0 n'_aou4. Partial (NameInfo n_amI0) (NameInfo n'_aou4) n_amI0 n'_aou4
+ Language.Haskell.Tools.AST.SemaInfoTypes: nameInfo :: forall n_aldX n'_ap8D. Partial (NameInfo n_aldX) (NameInfo n'_ap8D) n_aldX n'_ap8D
- Language.Haskell.Tools.AST.SemaInfoTypes: nameIsDefined :: forall n_amI0. Lens (NameInfo n_amI0) (NameInfo n_amI0) Bool Bool
+ Language.Haskell.Tools.AST.SemaInfoTypes: nameIsDefined :: forall n_aldX. Lens (NameInfo n_aldX) (NameInfo n_aldX) Bool Bool
- Language.Haskell.Tools.AST.SemaInfoTypes: nameScopedLocals :: forall n_amI0. Lens (NameInfo n_amI0) (NameInfo n_amI0) Scope Scope
+ Language.Haskell.Tools.AST.SemaInfoTypes: nameScopedLocals :: forall n_aldX. Lens (NameInfo n_aldX) (NameInfo n_aldX) Scope Scope

Files

Language/Haskell/Tools/AST.hs view
@@ -10,18 +10,18 @@ import Language.Haskell.Tools.AST.References as Exported
 import Language.Haskell.Tools.AST.Helpers as Exported
 
-import Language.Haskell.Tools.AST.Modules as Exported
-import Language.Haskell.Tools.AST.TH as Exported
-import Language.Haskell.Tools.AST.Decls as Exported
-import Language.Haskell.Tools.AST.Binds as Exported
-import Language.Haskell.Tools.AST.Exprs as Exported
-import Language.Haskell.Tools.AST.Stmts as Exported
-import Language.Haskell.Tools.AST.Patterns as Exported
-import Language.Haskell.Tools.AST.Types as Exported
-import Language.Haskell.Tools.AST.Kinds as Exported
-import Language.Haskell.Tools.AST.Literals as Exported
-import Language.Haskell.Tools.AST.Base as Exported
+import Language.Haskell.Tools.AST.Representation.Modules as Exported
+import Language.Haskell.Tools.AST.Representation.TH as Exported
+import Language.Haskell.Tools.AST.Representation.Decls as Exported
+import Language.Haskell.Tools.AST.Representation.Binds as Exported
+import Language.Haskell.Tools.AST.Representation.Exprs as Exported
+import Language.Haskell.Tools.AST.Representation.Stmts as Exported
+import Language.Haskell.Tools.AST.Representation.Patterns as Exported
+import Language.Haskell.Tools.AST.Representation.Types as Exported
+import Language.Haskell.Tools.AST.Representation.Kinds as Exported
+import Language.Haskell.Tools.AST.Representation.Literals as Exported
+import Language.Haskell.Tools.AST.Representation.Names as Exported
 import Language.Haskell.Tools.AST.Ann as Exported
 import Language.Haskell.Tools.AST.Utils.OrdSrcSpan as Exported
-import Language.Haskell.Tools.AST.SemaInfoTypes as Exported
-import Language.Haskell.Tools.AST.SemaInfoClasses as Exported+import Language.Haskell.Tools.AST.SemaInfoClasses as Exported
+-- import Language.Haskell.Tools.AST.SemaInfoTypes (NoSemanticInfo, ScopeInfo, NameInfo, ) as Exported
Language/Haskell/Tools/AST/Ann.hs view
@@ -10,6 +10,7 @@            , AllowAmbiguousTypes
            , TypeApplications
            , ScopedTypeVariables
+           , PatternSynonyms
            #-}
 -- | Parts of AST representation for keeping extra data
 module Language.Haskell.Tools.AST.Ann where
@@ -27,9 +28,9 @@ import Language.Haskell.Tools.AST.Utils.GHCInstances
 import Language.Haskell.Tools.AST.SemaInfoTypes
 
-import {-# SOURCE #-} Language.Haskell.Tools.AST.Modules as AST
-import {-# SOURCE #-} Language.Haskell.Tools.AST.Base as AST
-import {-# SOURCE #-} Language.Haskell.Tools.AST.Exprs as AST
+import {-# SOURCE #-} Language.Haskell.Tools.AST.Representation.Modules as AST
+import {-# SOURCE #-} Language.Haskell.Tools.AST.Representation.Names as AST
+import {-# SOURCE #-} Language.Haskell.Tools.AST.Representation.Exprs as AST
 
 -- * Annotation type resolution
 
@@ -82,11 +83,11 @@ data SameInfoWildcardCls
 
 type family SemaInfoClassify (node :: * -> * -> *) where
-  SemaInfoClassify QualifiedName = SameInfoNameCls
-  SemaInfoClassify Expr          = SameInfoExprCls
-  SemaInfoClassify ImportDecl    = SameInfoImportCls
-  SemaInfoClassify AST.Module    = SameInfoModuleCls
-  SemaInfoClassify FieldWildcard = SameInfoWildcardCls
+  SemaInfoClassify UQualifiedName = SameInfoNameCls
+  SemaInfoClassify UExpr          = SameInfoExprCls
+  SemaInfoClassify UImportDecl    = SameInfoImportCls
+  SemaInfoClassify AST.UModule    = SameInfoModuleCls
+  SemaInfoClassify UFieldWildcard = SameInfoWildcardCls
   SemaInfoClassify a             = SameInfoDefaultCls
 
 type family SemanticInfo' (domain :: *) (nodecls :: *)
@@ -172,11 +173,11 @@       , HasRange (OptionalInfo stage)
       ) 
          => SourceInfo stage where
-  -- | Type of source info for normal AST elements
+  -- | UType of source info for normal AST elements
   data SpanInfo stage :: *
-  -- | Type of source info for lists of AST elements
+  -- | UType of source info for lists of AST elements
   data ListInfo stage :: *
-  -- | Type of source info for optional AST elements
+  -- | UType of source info for optional AST elements
   data OptionalInfo stage :: *
 
 
@@ -256,6 +257,15 @@ 
 -- * Annotations
 
+-- | Semantic and source code related information for an AST node.
+data NodeInfo sema src 
+  = NodeInfo { _semanticInfo :: sema
+             , _sourceInfo :: src
+             }
+  deriving (Eq, Show, Data)
+             
+makeReferences ''NodeInfo
+
 -- | An element of the AST keeping extra information.
 data Ann elem dom stage
 -- The type parameters are organized this way because we want the annotation type to
@@ -269,44 +279,43 @@ 
 
 -- | A list of AST elements
-data AnnList elem dom stage = AnnList { _annListAnnot :: NodeInfo (SemanticInfo dom (AnnList elem)) (ListInfo stage) 
-                                      , _annListElems :: [Ann elem dom stage]
-                                      }
-                           
-makeReferences ''AnnList
+data AnnListG elem dom stage = AnnListG { _annListAnnot :: NodeInfo (SemanticInfo dom (AnnListG elem)) (ListInfo stage) 
+                                        , _annListElems :: [Ann elem dom stage]
+                                        }
+
+makeReferences ''AnnListG
         
-annList :: Traversal (AnnList e d s) (AnnList e d s) (Ann e d s) (Ann e d s)                          
+annList :: Traversal (AnnListG e d s) (AnnListG e d s) (Ann e d s) (Ann e d s)                          
 annList = annListElems & traversal
 
 -- | An optional AST element
-data AnnMaybe elem dom stage = AnnMaybe { _annMaybeAnnot :: NodeInfo (SemanticInfo dom (AnnMaybe elem)) (OptionalInfo stage)
-                                        , _annMaybe :: Maybe (Ann elem dom stage)
-                                        }
+data AnnMaybeG elem dom stage = AnnMaybeG { _annMaybeAnnot :: NodeInfo (SemanticInfo dom (AnnMaybeG elem)) (OptionalInfo stage)
+                                          , _annMaybe :: Maybe (Ann elem dom stage)
+                                          }
                              
-makeReferences ''AnnMaybe
+makeReferences ''AnnMaybeG
                           
-annJust :: Partial (AnnMaybe e d s) (AnnMaybe e d s) (Ann e d s) (Ann e d s)                          
+annJust :: Partial (AnnMaybeG e d s) (AnnMaybeG e d s) (Ann e d s) (Ann e d s)                          
 annJust = annMaybe & just
 
 -- | An empty list of AST elements
-annNil :: NodeInfo (SemanticInfo d (AnnList e)) (ListInfo s) -> AnnList e d s
-annNil a = AnnList a []
+annNil :: NodeInfo (SemanticInfo d (AnnListG e)) (ListInfo s) -> AnnListG e d s
+annNil a = AnnListG a []
 
-isAnnNothing :: AnnMaybe e d s -> Bool
-isAnnNothing (AnnMaybe _ Nothing) = True
-isAnnNothing (AnnMaybe _ _) = False
+isAnnNothing :: AnnMaybeG e d s -> Bool
+isAnnNothing (AnnMaybeG _ Nothing) = True
+isAnnNothing (AnnMaybeG _ _) = False
 
-isAnnJust :: AnnMaybe e d s -> Bool
-isAnnJust (AnnMaybe _ (Just _)) = True
-isAnnJust (AnnMaybe _ _) = False
+isAnnJust :: AnnMaybeG e d s -> Bool
+isAnnJust (AnnMaybeG _ (Just _)) = True
+isAnnJust (AnnMaybeG _ _) = False
 
-annLength :: AnnList e d s -> Int
-annLength (AnnList _ ls) = length ls
+annLength :: AnnListG e d s -> Int
+annLength (AnnListG _ ls) = length ls
 
 -- | A non-existing AST part
-annNothing :: NodeInfo (SemanticInfo d (AnnMaybe e)) (OptionalInfo s) -> AnnMaybe e d s
-annNothing a = AnnMaybe a Nothing
-
+annNothing :: NodeInfo (SemanticInfo d (AnnMaybeG e)) (OptionalInfo s) -> AnnMaybeG e d s
+annNothing a = AnnMaybeG a Nothing
 
 -- * Info types
 
@@ -338,12 +347,12 @@   getRange (Ann a _) = getRange (a ^. sourceInfo)
   setRange sp = annotation & sourceInfo .- setRange sp
 
-instance SourceInfo stage => HasRange (AnnList elem dom stage) where
-  getRange (AnnList a _) = getRange (a ^. sourceInfo)
+instance SourceInfo stage => HasRange (AnnListG elem dom stage) where
+  getRange (AnnListG a _) = getRange (a ^. sourceInfo)
   setRange sp = annListAnnot & sourceInfo .- setRange sp
 
-instance SourceInfo stage => HasRange (AnnMaybe elem dom stage) where
-  getRange (AnnMaybe a _) = getRange (a ^. sourceInfo)
+instance SourceInfo stage => HasRange (AnnMaybeG elem dom stage) where
+  getRange (AnnMaybeG a _) = getRange (a ^. sourceInfo)
   setRange sp = annMaybeAnnot & sourceInfo .- setRange sp
 
 -- | A class for changing semantic information throught the AST.
@@ -374,11 +383,11 @@ instance forall e . (ApplySemaChange (SemaInfoClassify e), SemanticTraversal e) => SemanticTraversal (Ann e) where
   semaTraverse f (Ann (NodeInfo sema src) e) = Ann <$> (NodeInfo <$> appSemaChange @(SemaInfoClassify e) f sema <*> pure src) <*> semaTraverse f e
 
-instance (ApplySemaChange (SemaInfoClassify e), SemanticTraversal e) => SemanticTraversal (AnnList e) where
-  semaTraverse f (AnnList (NodeInfo sema src) e) = AnnList <$> (NodeInfo <$> trfSemaDefault f sema <*> pure src) <*> mapM (semaTraverse f) e
+instance (ApplySemaChange (SemaInfoClassify e), SemanticTraversal e) => SemanticTraversal (AnnListG e) where
+  semaTraverse f (AnnListG (NodeInfo sema src) e) = AnnListG <$> (NodeInfo <$> trfSemaDefault f sema <*> pure src) <*> mapM (semaTraverse f) e
 
-instance (ApplySemaChange (SemaInfoClassify e), SemanticTraversal e) => SemanticTraversal (AnnMaybe e) where
-  semaTraverse f (AnnMaybe (NodeInfo sema src) e) = AnnMaybe <$> (NodeInfo <$> trfSemaDefault f sema <*> pure src) <*> sequence (fmap (semaTraverse f) e)
+instance (ApplySemaChange (SemaInfoClassify e), SemanticTraversal e) => SemanticTraversal (AnnMaybeG e) where
+  semaTraverse f (AnnMaybeG (NodeInfo sema src) e) = AnnMaybeG <$> (NodeInfo <$> trfSemaDefault f sema <*> pure src) <*> sequence (fmap (semaTraverse f) e)
 
 -- | A class for traversing source information in an AST
 class SourceInfoTraversal a where
@@ -400,19 +409,19 @@   sourceInfoTraverseUp trf desc asc (Ann (NodeInfo sema src) e) 
     = flip Ann <$> (desc *> sourceInfoTraverseUp trf desc asc e <* asc) <*> (NodeInfo sema <$> trfSpanInfo trf src)
 
-instance SourceInfoTraversal e => SourceInfoTraversal (AnnList e) where
-  sourceInfoTraverse trf (AnnList (NodeInfo sema src) e) 
-    = AnnList <$> (NodeInfo sema <$> trfListInfo trf src) <*> mapM (sourceInfoTraverse trf) e
-  sourceInfoTraverseDown trf desc asc (AnnList (NodeInfo sema src) e) 
-    = AnnList <$> (NodeInfo sema <$> trfListInfo trf src) <*> (desc *> mapM (sourceInfoTraverseDown trf desc asc) e <* asc)
-  sourceInfoTraverseUp trf desc asc (AnnList (NodeInfo sema src) e) 
-    = flip AnnList <$> (desc *> mapM (sourceInfoTraverseUp trf desc asc) e <* asc) <*> (NodeInfo sema <$> trfListInfo trf src)
+instance SourceInfoTraversal e => SourceInfoTraversal (AnnListG e) where
+  sourceInfoTraverse trf (AnnListG (NodeInfo sema src) e) 
+    = AnnListG <$> (NodeInfo sema <$> trfListInfo trf src) <*> mapM (sourceInfoTraverse trf) e
+  sourceInfoTraverseDown trf desc asc (AnnListG (NodeInfo sema src) e) 
+    = AnnListG <$> (NodeInfo sema <$> trfListInfo trf src) <*> (desc *> mapM (sourceInfoTraverseDown trf desc asc) e <* asc)
+  sourceInfoTraverseUp trf desc asc (AnnListG (NodeInfo sema src) e) 
+    = flip AnnListG <$> (desc *> mapM (sourceInfoTraverseUp trf desc asc) e <* asc) <*> (NodeInfo sema <$> trfListInfo trf src)
 
-instance SourceInfoTraversal e => SourceInfoTraversal (AnnMaybe e) where
-  sourceInfoTraverse trf (AnnMaybe (NodeInfo sema src) e) 
-    = AnnMaybe <$> (NodeInfo sema <$> trfOptionalInfo trf src) <*> sequence (fmap (sourceInfoTraverse trf) e)
-  sourceInfoTraverseDown trf desc asc (AnnMaybe (NodeInfo sema src) e) 
-    = AnnMaybe <$> (NodeInfo sema <$> trfOptionalInfo trf src) <*> (desc *> sequence (fmap (sourceInfoTraverseDown trf desc asc) e) <* asc)
-  sourceInfoTraverseUp trf desc asc (AnnMaybe (NodeInfo sema src) e) 
-    = flip AnnMaybe <$> (desc *> sequence (fmap (sourceInfoTraverseUp trf desc asc) e) <* asc) <*> (NodeInfo sema <$> trfOptionalInfo trf src)
+instance SourceInfoTraversal e => SourceInfoTraversal (AnnMaybeG e) where
+  sourceInfoTraverse trf (AnnMaybeG (NodeInfo sema src) e) 
+    = AnnMaybeG <$> (NodeInfo sema <$> trfOptionalInfo trf src) <*> sequence (fmap (sourceInfoTraverse trf) e)
+  sourceInfoTraverseDown trf desc asc (AnnMaybeG (NodeInfo sema src) e) 
+    = AnnMaybeG <$> (NodeInfo sema <$> trfOptionalInfo trf src) <*> (desc *> sequence (fmap (sourceInfoTraverseDown trf desc asc) e) <* asc)
+  sourceInfoTraverseUp trf desc asc (AnnMaybeG (NodeInfo sema src) e) 
+    = flip AnnMaybeG <$> (desc *> sequence (fmap (sourceInfoTraverseUp trf desc asc) e) <* asc) <*> (NodeInfo sema <$> trfOptionalInfo trf src)
 
− Language/Haskell/Tools/AST/Base.hs
@@ -1,121 +0,0 @@-
-{-# LANGUAGE TypeFamilies
-           , MultiParamTypeClasses
-           , FlexibleInstances
-           #-}
-
--- | Simple AST elements of Haskell
-module Language.Haskell.Tools.AST.Base where
-  
-import Language.Haskell.Tools.AST.Ann
-
-data Operator dom stage
-  = BacktickOp { _operatorName :: Ann QualifiedName dom stage } -- ^ Backtick operator name: @ a `mod` b @
-  | NormalOp { _operatorName :: Ann QualifiedName dom stage }
-
-data Name dom stage
-  = ParenName { _simpleName :: Ann QualifiedName dom stage } -- ^ Parenthesized name: @ foldl (+) 0 @
-  | NormalName { _simpleName :: Ann QualifiedName dom stage }
-  | ImplicitName { _simpleName :: Ann QualifiedName dom stage } -- ^ Implicit name: @ ?var @
-
--- | Possible qualified names. Contains also implicit names.
--- Linear implicit parameter: @%x@. Non-linear implicit parameter: @?x@.
-data QualifiedName dom stage
-  = QualifiedName { _qualifiers :: AnnList UnqualName dom stage
-                  , _unqualifiedName :: Ann UnqualName dom stage
-                  }
-
-nameFromList :: AnnList UnqualName dom stage -> QualifiedName dom stage
-nameFromList (AnnList a xs) | not (null xs) 
-  = QualifiedName (AnnList a (init xs)) (last xs) 
-nameFromList _ = error "nameFromList: empty list"
-         
--- | Parts of a qualified name.         
-data UnqualName dom stage
-  = UnqualName { _simpleNameStr :: String } 
-               
--- | Program elements formatted as string literals (import packages, pragma texts)
-data StringNode dom stage
-  = StringNode { _stringNodeStr :: String }
-
--- | The name of a module
-data ModuleName dom stage = ModuleName { _moduleNameString :: String }
-                   
--- | The @data@ or the @newtype@ keyword to define ADTs.
-data DataOrNewtypeKeyword dom stage
-  = DataKeyword
-  | NewtypeKeyword
-    
--- | Keywords @do@ or @mdo@ to start a do-block
-data DoKind dom stage
-  = DoKeyword
-  | MDoKeyword
-  
--- | The @type@ keyword used to qualify that the type and not the constructor of the same name is referred
-data TypeKeyword dom stage = TypeKeyword
-  
--- | Recognised overlaps for overlap pragmas. Can be applied to class declarations and class instance declarations.    
-data OverlapPragma dom stage
-  = EnableOverlap     -- ^ @OVERLAP@ pragma
-  | DisableOverlap    -- ^ @NO_OVERLAP@ pragma
-  | Overlappable      -- ^ @OVERLAPPABLE@ pragma
-  | Overlapping       -- ^ @OVERLAPPING@ pragma
-  | Overlaps          -- ^ @OVERLAPS@ pragma
-  | IncoherentOverlap -- ^ @INCOHERENT@ pragma
-  
--- | Call conventions of foreign functions
-data CallConv dom stage
-  = StdCall
-  | CCall
-  | CPlusPlus
-  | DotNet
-  | Jvm
-  | Js
-  | JavaScript
-  | CApi
-  
-data ArrowAppl dom stage
-  = LeftAppl -- ^ Left arrow application: @-<@
-  | RightAppl -- ^ Right arrow application: @>-@
-  | LeftHighApp -- ^ Left arrow high application: @-<<@
-  | RightHighApp -- ^ Right arrow high application: @>>-@
-  
--- | Safety annotations for foreign calls
-data Safety dom stage
-  = Safe
-  | ThreadSafe
-  | Unsafe
-  | Interruptible
-
--- | Associativity of an operator.
-data Assoc dom stage
-  = AssocNone  -- ^ non-associative operator (declared with @infix@)
-  | AssocLeft  -- ^ left-associative operator (declared with @infixl@)
-  | AssocRight -- ^ right-associative operator (declared with @infixr@)
-
-data Role dom stage
-  = Nominal
-  | Representational
-  | Phantom
-  
-data ConlikeAnnot dom stage = ConlikeAnnot
-
--- | Numeric precedence of an operator
-data Precedence dom stage
-  = Precedence { _precedenceValue :: Int } 
-
-data LineNumber dom stage
-  = LineNumber { _lineNumber :: Int } 
-     
--- | Controls the activation of a rewrite rule (@ [1] @)
-data PhaseControl dom stage
-  = PhaseControl { _phaseUntil :: AnnMaybe PhaseInvert dom stage
-                 , _phaseNumber :: Ann PhaseNumber dom stage
-                 } 
-
--- | Phase number for rewrite rules
-data PhaseNumber dom stage
-  = PhaseNumber { _phaseNum :: Integer }
-
--- | A tilde that marks the inversion of the phase number
-data PhaseInvert dom stage = PhaseInvert
− Language/Haskell/Tools/AST/Base.hs-boot
@@ -1,5 +0,0 @@-{-# LANGUAGE RoleAnnotations #-}
-module Language.Haskell.Tools.AST.Base where
-
-type role QualifiedName nominal nominal
-data QualifiedName dom stage
− Language/Haskell/Tools/AST/Binds.hs
@@ -1,151 +0,0 @@--- | Representation of Haskell AST value and function bindings (both local and top-level)
-module Language.Haskell.Tools.AST.Binds where
-
-import Language.Haskell.Tools.AST.Ann
-import Language.Haskell.Tools.AST.Base
-import Language.Haskell.Tools.AST.Patterns
-import Language.Haskell.Tools.AST.Exprs
-import Language.Haskell.Tools.AST.Types
-import Language.Haskell.Tools.AST.Literals
-import {-# SOURCE #-} Language.Haskell.Tools.AST.TH
-
--- | Value binding for top-level and local bindings
-data ValueBind dom stage
-  = SimpleBind { _valBindPat :: Ann Pattern dom stage
-               , _valBindRhs :: Ann Rhs dom stage
-               , _valBindLocals :: AnnMaybe LocalBinds dom stage
-               } -- ^ Non-function binding (@ v = "12" @)  
-  -- TODO: use one name for a function instead of names in each match
-  | FunBind    { _funBindMatches :: AnnList Match dom stage
-               } -- ^ Function binding (@ f 0 = 1; f x = x @). All matches must have the same name.
-
--- | Clause of function (or value) binding   
-data Match dom stage
-  = Match { _matchLhs :: Ann MatchLhs dom stage
-          , _matchRhs :: Ann Rhs dom stage
-          , _matchBinds :: AnnMaybe LocalBinds dom stage
-          } 
-
--- | Something on the left side of the match
-data MatchLhs dom stage
-  = NormalLhs { _matchLhsName :: Ann Name dom stage
-              , _matchLhsArgs :: AnnList Pattern dom stage
-              }
-  | InfixLhs { _matchLhsLhs :: Ann Pattern dom stage
-             , _matchLhsOperator :: Ann Operator dom stage
-             , _matchLhsRhs :: Ann Pattern dom stage
-             , _matchLhsArgs :: AnnList Pattern dom stage
-             }
-    
--- | Local bindings attached to a declaration (@ where x = 42 @)             
-data LocalBinds dom stage
-  = LocalBinds { _localBinds :: AnnList LocalBind dom stage
-               }
-  
--- | Bindings that are enabled in local blocks (where or let).
-data LocalBind dom stage
-  = LocalValBind   { _localVal :: Ann ValueBind dom stage
-                   }
-  -- TODO: check that no other signature can be inside a local binding
-  | LocalSignature { _localSig :: Ann TypeSignature dom stage
-                   }
-  | LocalFixity    { _localFixity :: Ann FixitySignature dom stage
-                   }
-                   
--- | A type signature (@ _f :: Int -> Int @)
-data TypeSignature dom stage
-  = TypeSignature { _tsName :: AnnList Name dom stage
-                  , _tsType :: Ann Type dom stage
-                  }     
-                   
--- | A fixity signature (@ infixl 5 +, - @).
-data FixitySignature dom stage
-  = FixitySignature { _fixityAssoc :: Ann Assoc dom stage
-                    , _fixityPrecedence :: Ann Precedence dom stage
-                    , _fixityOperators :: AnnList Operator dom stage
-                    }
-   
--- | Right hand side of a value binding (possible with guards): (@ = 3 @ or @ | x == 1 = 3; | otherwise = 4 @)
-data Rhs dom stage
-  = UnguardedRhs { _rhsExpr :: Ann Expr dom stage
-                 }
-  | GuardedRhss  { _rhsGuards :: AnnList GuardedRhs dom stage
-                 }
-      
--- | A guarded right-hand side of a value binding (@ | x > 3 = 2 @)      
-data GuardedRhs dom stage
-  = GuardedRhs { _guardStmts :: AnnList RhsGuard dom stage -- ^ Cannot be empty.
-               , _guardExpr :: Ann Expr dom stage
-               } 
-
--- | Guards for value bindings and pattern matches (@ Just v <- x, v > 1 @)
-data RhsGuard dom stage
-  = GuardBind  { _guardPat :: Ann Pattern dom stage
-               , _guardRhs :: Ann Expr dom stage
-               }
-  | GuardLet   { _guardBinds :: AnnList LocalBind dom stage
-               }
-  | GuardCheck { _guardCheck :: Ann Expr dom stage
-               }
-
--- * Pragmas
-
--- | Top level pragmas
-data TopLevelPragma dom stage
-  = RulePragma       { _pragmaRule :: AnnList Rule dom stage
-                     }
-  | DeprPragma       { _pragmaObjects :: AnnList Name dom stage
-                     , _pragmaMessage :: Ann StringNode dom stage
-                     }
-  | WarningPragma    { _pragmaObjects :: AnnList Name dom stage
-                     , _pragmaMessage :: Ann StringNode dom stage
-                     }
-  | AnnPragma        { _annotationSubject :: Ann AnnotationSubject dom stage
-                     , _annotateExpr :: Ann Expr dom stage
-                     }
-  | InlinePragma     { _pragmaConlike :: AnnMaybe ConlikeAnnot dom stage
-                     , _pragmaPhase :: AnnMaybe PhaseControl dom stage
-                     , _inlineDef :: Ann Name dom stage
-                     }
-  | NoInlinePragma   { _pragmaConlike :: AnnMaybe ConlikeAnnot dom stage
-                     , _pragmaPhase :: AnnMaybe PhaseControl dom stage
-                     , _noInlineDef :: Ann Name dom stage
-                     }
-  | InlinablePragma  { _pragmaPhase :: AnnMaybe PhaseControl dom stage
-                     , _inlinableDef :: Ann Name dom stage
-                     }
-  | LinePragma       { _pragmaLineNum :: Ann LineNumber dom stage
-                     , _pragmaFileName :: AnnMaybe StringNode dom stage
-                     }
-  | SpecializePragma { _pragmaPhase :: AnnMaybe PhaseControl dom stage
-                     , _specializeDef :: Ann Name dom stage
-                     , _specializeType :: AnnList Type dom stage
-                     }
-
--- | A rewrite rule (@ "map/map" forall f g xs. map f (map g xs) = map (f.g) xs @)
-data Rule dom stage
-  = Rule { _ruleName :: Ann StringNode dom stage -- ^ User name of the rule
-         , _rulePhase :: AnnMaybe PhaseControl dom stage -- ^ The compilation phases in which the rule can be applied
-         , _ruleBounded :: AnnList TyVar dom stage -- ^ Variables bound in the rule
-         , _ruleLhs :: Ann Expr dom stage -- ^ The transformed expression
-         , _ruleRhs :: Ann Expr dom stage -- ^ The resulting expression
-         }
- 
--- | Annotation allows you to connect an expression to any declaration. 
-data AnnotationSubject dom stage
-  = NameAnnotation { _annotateName :: Ann Name dom stage
-                   } -- ^ The definition with the given name is annotated
-  | TypeAnnotation { _annotateName :: Ann Name dom stage
-                   } -- ^ A type with the given name is annotated
-  | ModuleAnnotation -- ^ The whole module is annotated
-
--- | Formulas of minimal annotations declaring which functions should be defined.
-data MinimalFormula dom stage
-  = MinimalName  { _minimalName :: Ann Name dom stage
-                 }
-  | MinimalParen { _minimalInner :: Ann MinimalFormula dom stage
-                 }
-  | MinimalOr    { _minimalOrs :: AnnList MinimalFormula dom stage
-                 } -- ^ One of the minimal formulas are needed (@ min1 | min2 @)
-  | MinimalAnd   { _minimalAnds :: AnnList MinimalFormula dom stage
-                 } -- ^ Both of the minimal formulas are needed (@ min1 , min2 @)
− Language/Haskell/Tools/AST/Binds.hs-boot
@@ -1,11 +0,0 @@-{-# LANGUAGE RoleAnnotations #-}
-module Language.Haskell.Tools.AST.Binds where
-
-type role LocalBind nominal nominal
-data LocalBind dom stage
-
-type role LocalBinds nominal nominal
-data LocalBinds dom stage
-
-type role RhsGuard nominal nominal
-data RhsGuard dom stage
− Language/Haskell/Tools/AST/Decls.hs
@@ -1,299 +0,0 @@--- | Representation of Haskell AST definitions. These include definition of data types, classes, instances and so on. 
--- The definition of value bindings are in the Binds module.
-module Language.Haskell.Tools.AST.Decls where
-
-import Language.Haskell.Tools.AST.Binds
-import Language.Haskell.Tools.AST.Types
-import Language.Haskell.Tools.AST.Patterns
-import Language.Haskell.Tools.AST.Kinds
-import Language.Haskell.Tools.AST.Exprs
-import Language.Haskell.Tools.AST.Base
-import Language.Haskell.Tools.AST.Literals
-import Language.Haskell.Tools.AST.Ann
-import {-# SOURCE #-} Language.Haskell.Tools.AST.TH
-
-
--- | Haskell declaration
-data Decl dom stage
-  = TypeDecl             { _declHead :: Ann DeclHead dom stage
-                         , _declType :: Ann Type dom stage
-                         } -- ^ A type synonym ( @type String = [Char]@ )
-  | TypeFamilyDecl       { _declTypeFamily :: Ann TypeFamily dom stage
-                         }
-  | ClosedTypeFamilyDecl { _declHead :: Ann DeclHead dom stage
-                         , _declKind :: AnnMaybe KindConstraint dom stage
-                         , _declDecl :: AnnList TypeEqn dom stage -- ^ cannot be empty
-                         } -- ^ A closed type family declaration
-  | DataDecl             { _declNewtype :: Ann DataOrNewtypeKeyword dom stage
-                         , _declCtx  :: AnnMaybe Context dom stage
-                         , _declHead :: Ann DeclHead dom stage
-                         , _declCons :: AnnList ConDecl dom stage
-                         , _declDeriving :: AnnMaybe Deriving dom stage
-                         } -- ^ A data or newtype declaration. Empty data type declarations without 
-                           -- where keyword are always belong to DataDecl.
-  | GDataDecl            { _declNewtype :: Ann DataOrNewtypeKeyword dom stage
-                         , _declCtx  :: AnnMaybe Context dom stage
-                         , _declHead :: Ann DeclHead dom stage
-                         , _declKind :: AnnMaybe KindConstraint dom stage
-                         , _declGadt :: AnnList GadtConDecl dom stage
-                         , _declDeriving :: AnnMaybe Deriving dom stage
-                         } -- ^ A data or newtype declaration.
-  | TypeInstDecl         { _declInstance :: Ann InstanceRule dom stage
-                         , _declAssignedType :: Ann Type dom stage
-                         } -- ^ Type instance declaration (@ type instance Fam T = AssignedT @)
-  | DataInstDecl         { _declNewtype :: Ann DataOrNewtypeKeyword dom stage
-                         , _declInstance :: Ann InstanceRule dom stage
-                         , _declCons :: AnnList ConDecl dom stage
-                         , _declDeriving :: AnnMaybe Deriving dom stage
-                         } -- ^ Data instance declaration (@ data instance Fam T = Con1 | Con2 @)
-  | GDataInstDecl        { _declNewtype :: Ann DataOrNewtypeKeyword dom stage
-                         , _declInstance :: Ann InstanceRule dom stage
-                         , _declKind :: AnnMaybe KindConstraint dom stage
-                         , _declGadt :: AnnList GadtConDecl dom stage
-                         } -- ^ Gadt style data instance declaration (@ data instance Fam T where ... @)
-  | ClassDecl            { _declCtx :: AnnMaybe Context dom stage
-                         , _declHead :: Ann DeclHead dom stage
-                         , _declFunDeps :: AnnMaybe FunDeps dom stage
-                         , _declBody :: AnnMaybe ClassBody dom stage
-                         } -- ^ Type class declaration (@ class X a [where f = ...] @)
-  | InstDecl             { _declOverlap :: AnnMaybe OverlapPragma dom stage
-                         , _declInstRule :: Ann InstanceRule dom stage
-                         , _declInstDecl :: AnnMaybe InstBody dom stage
-                         } -- ^ Instance declaration (@ instance X T [where f = ...] @)
-  | PatternSynonymDecl   { _declPatSyn :: Ann PatternSynonym dom stage
-                         } -- ^ Pattern synonyms (@ pattern Arrow t1 t2 = App "->" [t1, t2] @)
-  | DerivDecl            { _declOverlap :: AnnMaybe OverlapPragma dom stage
-                         , _declInstRule :: Ann InstanceRule dom stage
-                         } -- ^ Standalone deriving declaration (@ deriving instance X T @)
-  | FixityDecl           { _declFixity :: Ann FixitySignature dom stage
-                         } -- ^ Fixity declaration (@ infixl 5 +, - @)
-  | DefaultDecl          { _declTypes :: AnnList Type dom stage
-                         } -- ^ Default types (@ default (T1, T2) @)
-  | TypeSigDecl          { _declTypeSig :: Ann TypeSignature dom stage
-                         } -- ^ Type signature declaration (@ _f :: Int -> Int @)
-  | PatTypeSigDecl       { _declPatTypeSig :: Ann PatternTypeSignature dom stage
-                         } -- ^ Type signature declaration (@ _f :: Int -> Int @)
-  | ValueBinding         { _declValBind :: Ann ValueBind dom stage
-                         } -- ^ Function binding (@ f x = 12 @)
-  | ForeignImport        { _declCallConv :: Ann CallConv dom stage
-                         , _declSafety :: AnnMaybe Safety dom stage
-                         , _declName :: Ann Name dom stage
-                         , _declType :: Ann Type dom stage
-                         } -- ^ Foreign import (@ foreign import _foo :: Int -> IO Int @)
-  | ForeignExport        { _declCallConv :: Ann CallConv dom stage
-                         , _declName :: Ann Name dom stage
-                         , _declType :: Ann Type dom stage
-                         } -- ^ foreign export (@ foreign export ccall _foo :: Int -> IO Int @)
-  | PragmaDecl           { _declPragma :: Ann TopLevelPragma dom stage
-                         } -- ^ top level pragmas
-  | RoleDecl             { _declRoleType :: Ann QualifiedName dom stage
-                         , _declRoles :: AnnList Role dom stage
-                         } -- ^ role annotations (@ type role Ptr representational @)
-  | SpliceDecl           { _declSplice :: Ann Splice dom stage
-                         } -- ^ A Template Haskell splice declaration (@ $(generateDecls) @)
-    
--- | Open type and data families
-data TypeFamily dom stage
-  = TypeFamily { _tfHead :: Ann DeclHead dom stage
-               , _tfSpec :: AnnMaybe TypeFamilySpec dom stage
-               } -- ^ A type family declaration (@ type family A _a :: * -> * @)    
-  | DataFamily { _tfHead :: Ann DeclHead dom stage
-               , _tfKind :: AnnMaybe KindConstraint dom stage
-               } -- ^ Data family declaration
-
--- | Type family specification with kinds specification and injectivity.
-data TypeFamilySpec dom stage
-  = TypeFamilyKind { _tfSpecKind :: Ann KindConstraint dom stage
-                   }
-  | TypeFamilyInjectivity { _tfInjectivity :: Ann InjectivityAnn dom stage
-                          }
-
--- | Injectivity annotation for type families (@ = r | r -> a @)
-data InjectivityAnn dom stage
-  = InjectivityAnn { _injAnnRes :: Ann Name dom stage
-                   , _injAnnDeps :: AnnList Name dom stage
-                   }
-
--- | The list of declarations that can appear in a typeclass
-data ClassBody dom stage
-  = ClassBody { _cbElements :: AnnList ClassElement dom stage
-              }
-                 
--- | Members of a class declaration       
-data ClassElement dom stage
-  = ClsSig     { _ceTypeSig :: Ann TypeSignature dom stage
-               } -- ^ Signature: @ _f :: A -> B @
-  | ClsDef     { _ceBind :: Ann ValueBind dom stage
-               } -- ^ Default binding: @ f x = "aaa" @
-  | ClsTypeFam { _ceTypeFam :: Ann TypeFamily dom stage
-               } -- ^ Declaration of an associated type synonym: @ type T _x :: * @ 
-  | ClsTypeDef { _ceHead :: Ann DeclHead dom stage
-               , _ceKind :: Ann Type dom stage
-               } -- ^ Default choice for type synonym: @ type T x = TE @ or @ type instance T x = TE @ 
-  | ClsDefSig  { _ceName :: Ann Name dom stage
-               , _ceType :: Ann Type dom stage
-               } -- ^ Default signature (by using @DefaultSignatures@): @ default _enum :: (Generic a, GEnum (Rep a)) => [a] @
-  | ClsMinimal { _pragmaFormula :: Ann MinimalFormula dom stage
-               } -- ^ Minimal pragma: @ {-# MINIMAL (==) | (/=) #-} @
-
-   -- not supported yet (GHC 7.10.3)
-  | ClsPatSig  { _cePatSig :: Ann PatternTypeSignature dom stage
-               } -- ^ Pattern signature in a class declaration (by using @PatternSynonyms@)
-       
--- The declared (possibly parameterized) type (@ A x :+: B y @).
-data DeclHead dom stage
-  = DeclHead { _dhName :: Ann Name dom stage
-             } -- ^ Type or class name
-  | DHParen  { _dhBody :: Ann DeclHead dom stage
-             } -- ^ Parenthesized type
-  | DHApp    { _dhAppFun :: Ann DeclHead dom stage
-             , _dhAppOperand :: Ann TyVar dom stage
-             } -- ^ Type application
-  | DHInfix  { _dhLeft :: Ann TyVar dom stage
-             , _dhOperator :: Ann Operator dom stage
-             , _dhRight :: Ann TyVar dom stage
-             } -- ^ Infix application of the type/class name to the left operand
-       
--- | Instance body is the implementation of the class functions (@ where a x = 1; b x = 2 @)
-data InstBody dom stage
-  = InstBody { _instBodyDecls :: AnnList InstBodyDecl dom stage
-             }
-
--- | Declarations inside an instance declaration.
-data InstBodyDecl dom stage
-  = InstBodyNormalDecl   { _instBodyDeclFunbind :: Ann ValueBind dom stage
-                         } -- ^ A normal declaration (@ f x = 12 @)
-  | InstBodyTypeSig      { _instBodyTypeSig :: Ann TypeSignature dom stage
-                         } -- ^ Type signature in instance definition with @InstanceSigs@
-  | InstBodyTypeDecl     { _instBodyTypeEqn :: Ann TypeEqn dom stage
-                         } -- ^ An associated type definition (@ type A X = B @)
-  | InstBodyDataDecl     { _instBodyDataNew :: Ann DataOrNewtypeKeyword dom stage
-                         , _instBodyLhsType :: Ann InstanceRule dom stage
-                         , _instBodyDataCons :: AnnList ConDecl dom stage
-                         , _instBodyDerivings :: AnnMaybe Deriving dom stage
-                         } -- ^ An associated data type implementation (@ data A X = C1 | C2 @)
-  | InstBodyGadtDataDecl { _instBodyDataNew :: Ann DataOrNewtypeKeyword dom stage
-                         , _instBodyLhsType :: Ann InstanceRule dom stage
-                         , _instBodyDataKind :: AnnMaybe KindConstraint dom stage
-                         , _instBodyGadtCons :: AnnList GadtConDecl dom stage
-                         , _instBodyDerivings :: AnnMaybe Deriving dom stage
-                         } -- ^ An associated data type implemented using GADT style
-  | SpecializeInstance   { _specializeInstanceType :: Ann Type dom stage
-                         } -- ^ Specialize instance pragma (no phase selection is allowed)
-  -- not supported yet
-  | InstBodyPatSyn       { _instBodyPatSyn :: Ann PatternSynonym dom stage
-                         } -- ^ A pattern synonym in a class instance
-
--- | GADT constructor declaration (@ _D1 :: { _val :: Int } -> T String @)
-data GadtConDecl dom stage
-  = GadtConDecl { _gadtConNames :: AnnList Name dom stage
-                , _gadtConType :: Ann GadtConType dom stage
-                }
-             
--- | Type of GADT constructors (can be record types: @{ _val :: Int }@)
-data GadtConType dom stage
-  = GadtNormalType { _gadtConNormalType :: Ann Type dom stage
-                   }
-  | GadtRecordType { _gadtConRecordFields :: AnnList FieldDecl dom stage
-                   , _gadtConResultType :: Ann Type dom stage
-                   }
-
--- | A list of functional dependencies: @ | a -> b, c -> d @ separated by commas  
-data FunDeps dom stage
-  = FunDeps { _funDeps :: AnnList FunDep dom stage
-            } 
-         
--- | A functional dependency, given on the form @l1 ... ln -> r1 ... rn@         
-data FunDep dom stage
-  = FunDep { _funDepLhs :: AnnList Name dom stage
-           , _funDepRhs :: AnnList Name dom stage
-           }
-  
--- | A constructor declaration for a datatype
-data ConDecl dom stage
-  = ConDecl      { _conDeclName :: Ann Name dom stage
-                 , _conDeclArgs :: AnnList Type dom stage
-                 } -- ^ ordinary data constructor (@ C t1 t2 @)
-  | RecordDecl   { _conDeclName :: Ann Name dom stage
-                 , _conDeclFields :: AnnList FieldDecl dom stage
-                 } -- ^ record data constructor (@ C { _n1 :: t1, _n2 :: t2 } @)
-  | InfixConDecl { _conDeclLhs :: Ann Type dom stage
-                 , _conDeclOp :: Ann Operator dom stage
-                 , _conDeclRhs :: Ann Type dom stage
-                 } -- ^ infix data constructor (@ t1 :+: t2 @)
-  
--- | Field declaration (@ _fld :: Int @)
-data FieldDecl dom stage
-  = FieldDecl { _fieldNames :: AnnList Name dom stage
-              , _fieldType :: Ann Type dom stage
-              }
-  
--- | A deriving clause following a data type declaration. (@ deriving Show @ or @ deriving (Show, Eq) @)
-data Deriving dom stage
-  = DerivingOne { _oneDerived :: Ann InstanceHead dom stage }
-  | Derivings { _allDerived :: AnnList InstanceHead dom stage }
-  
--- | The instance declaration rule, which is, roughly, the part of the instance declaration before the where keyword.
-data InstanceRule dom stage
-  = InstanceRule  { _irVars :: AnnMaybe (AnnList TyVar) dom stage
-                  , _irCtx :: AnnMaybe Context dom stage
-                  , _irHead :: Ann InstanceHead dom stage
-                  }
-  | InstanceParen { _irRule :: Ann InstanceRule dom stage
-                  }
-
--- | The specification of the class instance declaration
-data InstanceHead dom stage
-  = InstanceHeadCon   { _ihConName :: Ann Name dom stage
-                      } -- ^ Type or class name
-  | InstanceHeadInfix { _ihLeftOp :: Ann Type dom stage
-                      , _ihOperator :: Ann Name dom stage
-                      } -- ^ Infix application of the type/class name to the left operand
-  | InstanceHeadParen { _ihHead :: Ann InstanceHead dom stage
-                      } -- ^ Parenthesized instance head
-  | InstanceHeadApp   { _ihFun :: Ann InstanceHead dom stage
-                      , _ihType :: Ann Type dom stage
-                      } -- ^ Application to one more type
-        
--- | Type equations as found in closed type families (@ T A = S @)
-data TypeEqn dom stage
-  = TypeEqn { _teLhs :: Ann Type dom stage
-            , _teRhs :: Ann Type dom stage
-            }
-
--- | A pattern type signature (@ pattern p :: Int -> T @)
-data PatternTypeSignature dom stage
-  = PatternTypeSignature { _patSigName :: Ann Name dom stage
-                         , _patSigType :: Ann Type dom stage
-                         }   
-
--- | Pattern synonyms: @ pattern Arrow t1 t2 = App "->" [t1, t2] @
-data PatternSynonym dom stage
-  = PatternSynonym { _patLhs :: Ann PatSynLhs dom stage
-                   , _patRhs :: Ann PatSynRhs dom stage
-                   }
-
--- | Left hand side of a pattern synonym
-data PatSynLhs dom stage
-  = NormalPatSyn { _patName :: Ann Name dom stage
-                 , _patArgs :: AnnList Name dom stage
-                 }
-  | InfixPatSyn { _patSynLhs :: Ann Name dom stage
-                , _patSynOp :: Ann Operator dom stage
-                , _patSynRhs :: Ann Name dom stage
-                }
-  | RecordPatSyn { _patName :: Ann Name dom stage
-                 , _patArgs :: AnnList Name dom stage
-                 }
-
--- | Right-hand side of pattern synonym
-data PatSynRhs dom stage
-  = BidirectionalPatSyn { _patRhsPat :: Ann Pattern dom stage
-                        , _patRhsOpposite :: AnnMaybe PatSynWhere dom stage
-                        } -- ^ @ pattern Int = App "Int" [] @ or @ pattern Int <- App "Int" [] where Int = App "Int" [] @
-  | OneDirectionalPatSyn { _patRhsPat :: Ann Pattern dom stage
-                         } -- ^ @ pattern Int <- App "Int" [] @
-
--- | Where clause of pattern synonym (explicit expression direction)
-data PatSynWhere dom stage
-  = PatSynWhere { _patOpposite :: AnnList Match dom stage }
− Language/Haskell/Tools/AST/Exprs.hs
@@ -1,220 +0,0 @@--- | Representation of Haskell expressions
-module Language.Haskell.Tools.AST.Exprs where
-
-import Language.Haskell.Tools.AST.Ann
-import Language.Haskell.Tools.AST.Base
-import Language.Haskell.Tools.AST.Literals
-import Language.Haskell.Tools.AST.Types
-import Language.Haskell.Tools.AST.Patterns
-import Language.Haskell.Tools.AST.Stmts
-import {-# SOURCE #-} Language.Haskell.Tools.AST.TH
-import {-# SOURCE #-} Language.Haskell.Tools.AST.Binds (LocalBind, LocalBinds, RhsGuard)
-
--- | Haskell expressions
-data Expr dom stage
-  = Var            { _exprName :: Ann Name dom stage 
-                   } -- ^ A variable or a data constructor (@ a @)
-  | Lit            { _exprLit :: Ann Literal dom stage
-                   } -- ^ Primitive literal
-  | InfixApp       { _exprLhs :: Ann Expr dom stage
-                   , _exprOperator :: Ann Operator dom stage
-                   , _exprRhs :: Ann Expr dom stage
-                   } -- ^ Infix operator application (@ a + b @)
-  | PrefixApp      { _exprOperator :: Ann Operator dom stage
-                   , _exprRhs :: Ann Expr dom stage
-                   } -- ^ Prefix operator application (@ -x @)
-  | App            { _exprFun :: Ann Expr dom stage
-                   , _exprArg :: Ann Expr dom stage
-                   } -- ^ Function application (@ f 4 @)
-                   -- unary minus omitted
-  | Lambda         { _exprBindings :: AnnList Pattern dom stage -- ^ at least one
-                   , _exprInner :: Ann Expr dom stage
-                   } -- ^ Lambda expression (@ \a b -> a + b @)
-  | Let            { _exprFunBind :: AnnList LocalBind dom stage -- ^ nonempty
-                   , _exprInner :: Ann Expr dom stage
-                   } -- ^ Local binding (@ let x = 2; y = 3 in e x y @)
-  | If             { _exprCond :: Ann Expr dom stage
-                   , _exprThen :: Ann Expr dom stage
-                   , _exprElse :: Ann Expr dom stage
-                   } -- ^ If expression (@ if a then b else c @)
-  | MultiIf        { _exprIfAlts :: AnnList GuardedCaseRhs dom stage
-                   } -- ^ Multi way if expressions with @MultiWayIf@ extension (@ if | guard1 -> expr1; guard2 -> expr2 @)
-  | Case           { _exprCase :: Ann Expr dom stage
-                   , _exprAlts :: AnnList Alt dom stage
-                   } -- ^ Pattern matching expression (@ case expr of pat1 -> expr1; pat2 -> expr2 @)
-  | Do             { _doKind :: Ann DoKind dom stage
-                   , _exprStmts :: AnnList Stmt dom stage
-                   } -- ^ Do-notation expressions (@ do x <- act1; act2 @)
-  | Tuple          { _tupleElems :: AnnList Expr dom stage
-                   } -- ^ Tuple expression (@ (e1, e2, e3) @)
-  | UnboxedTuple   { _tupleElems :: AnnList Expr dom stage
-                   } -- ^ Unboxed tuple expression (@ (# e1, e2, e3 #) @)
-  | TupleSection   { _tupleSectionElems :: AnnList TupSecElem dom stage
-                   } -- ^ Tuple section, enabled with @TupleSections@ (@ (a,,b) @). One of the elements must be missing.
-  | UnboxedTupSec  { _tupleSectionElems :: AnnList TupSecElem dom stage
-                   }
-  | List           { _listElems :: AnnList Expr dom stage
-                   } -- ^ List expression: @[1,2,3]@
-  | ParArray       { _listElems :: AnnList Expr dom stage
-                   } -- ^ Parallel array expression: @[: 1,2,3 :]@
-  | Paren          { _exprInner :: Ann Expr dom stage
-                   }
-  | LeftSection    { _exprLhs :: Ann Expr dom stage
-                   , _exprOperator :: Ann Operator dom stage
-                   } -- ^ Left operator section: @(1+)@
-  | RightSection   { _exprOperator :: Ann Operator dom stage
-                   , _exprRhs :: Ann Expr dom stage
-                   } -- ^ Right operator section: @(+1)@
-  | RecCon         { _exprRecName :: Ann Name dom stage
-                   , _exprRecFields :: AnnList FieldUpdate dom stage
-                   } -- ^ Record value construction: @Point { x = 3, y = -2 }@
-  | RecUpdate      { _exprInner :: Ann Expr dom stage
-                   , _exprRecFields :: AnnList FieldUpdate dom stage
-                   } -- ^ Record value  update: @p1 { x = 3, y = -2 }@
-  | Enum           { _enumFrom :: Ann Expr dom stage
-                   , _enumThen :: AnnMaybe Expr dom stage
-                   , _enumTo :: AnnMaybe Expr dom stage
-                   } -- ^ Enumeration expression (@ [1,3..10] @)
-  | ParArrayEnum   { _enumFrom :: Ann Expr dom stage
-                   , _enumThen :: AnnMaybe Expr dom stage
-                   , _enumToFix :: Ann Expr dom stage
-                   } -- ^ Parallel array enumeration (@ [: 1,3 .. 10 :] @)
-  | ListComp       { _compExpr :: Ann Expr dom stage
-                   , _compBody :: AnnList ListCompBody dom stage -- ^ Can only have 1 element without @ParallelListComp@
-                   } -- ^ List comprehension (@ [ (x, y) | x <- xs | y <- ys ] @)
-  | ParArrayComp   { _compExpr :: Ann Expr dom stage
-                   , _compBody :: AnnList ListCompBody dom stage
-                   } -- ^ Parallel array comprehensions @ [: (x, y) | x <- xs , y <- ys :] @ enabled by @ParallelArrays@
-  | TypeSig        { _exprInner :: Ann Expr dom stage
-                   , _exprSig :: Ann Type dom stage
-                   } -- ^ Explicit type signature (@ _x :: Int @)
-  | ExplTypeApp    { _exprInner :: Ann Expr dom stage
-                   , _exprType :: Ann Type dom stage
-                   } -- ^ Explicit type application (@ show \@Integer (read "5") @)
-  | VarQuote       { _quotedName :: Ann Name dom stage
-                   } -- ^ @'x@ for template haskell reifying of expressions
-  | TypeQuote      { _quotedName :: Ann Name dom stage
-                   } -- ^ @''T@ for template haskell reifying of types
-  | BracketExpr    { _bracket :: Ann Bracket dom stage
-                   } -- ^ Template haskell bracket expression
-  | Splice         { _innerExpr :: Ann Splice dom stage
-                   } -- ^ Template haskell splice expression, for example: @$(gen a)@ or @$x@
-  | QuasiQuoteExpr { _exprQQ :: Ann QuasiQuote dom stage
-                   } -- ^ Template haskell quasi-quotation: @[$quoter|str]@
-  | ExprPragma     { _exprPragma :: Ann ExprPragma dom stage
-                   }
-  -- Arrows
-  | Proc           { _procPattern :: Ann Pattern dom stage
-                   , _procExpr :: Ann Cmd dom stage
-                   } -- ^ Arrow definition: @proc a -> f -< a+1@
-  | ArrowApp       { _exprLhs :: Ann Expr dom stage
-                   , _arrowAppl :: Ann ArrowAppl dom stage
-                   , _exprRhs :: Ann Expr dom stage
-                   } -- ^ Arrow application: @f -< a+1@
-  | LamCase        { _exprAlts :: AnnList Alt dom stage
-                   } -- ^ Lambda case ( @\case 0 -> 1; 1 -> 2@ )
-  | StaticPtr      { _exprInner :: Ann Expr dom stage
-                   } -- ^ Static pointer expression (@ static e @). The inner expression must be closed (cannot have variables bound outside)
-  -- XML expressions omitted
-                   
--- | Field update expressions
-data FieldUpdate dom stage
-  = NormalFieldUpdate { _fieldName :: Ann Name dom stage
-                      , _fieldValue :: Ann Expr dom stage
-                      } -- ^ Update of a field (@ x = 1 @)
-  | FieldPun          { _fieldUpdateName :: Ann Name dom stage
-                      } -- ^ Update the field to the value of the same name (@ x @)
-  | FieldWildcard     { _fieldWildcard :: Ann FieldWildcard dom stage
-                      } -- ^ Update the fields of the bounded names to their values (@ .. @). Must be the last initializer. Cannot be used in a record update expression.
-      
--- | Marker for a field wildcard. Only needed to attach semantic information in a type-safe way.
-data FieldWildcard dom stage = FldWildcard
-
--- | An element of a tuple section that can be an expression or missing (indicating a value from a parameter)
-data TupSecElem dom stage
-  = Present { _tupSecExpr :: Ann Expr dom stage
-            } -- ^ An existing element in a tuple section
-  | Missing -- ^ A missing element in a tuple section
-  
--- | Clause of case expression          
-data Alt' expr dom stage
-  = Alt { _altPattern :: Ann Pattern dom stage
-        , _altRhs :: Ann (CaseRhs' expr) dom stage
-        , _altBinds :: AnnMaybe LocalBinds dom stage
-        }
-type Alt = Alt' Expr
-type CmdAlt = Alt' Cmd
-
-  
--- | Right hand side of a match (possible with guards): (@ = 3 @ or @ | x == 1 = 3; | otherwise = 4 @)
-data CaseRhs' expr dom stage
-  = UnguardedCaseRhs { _rhsCaseExpr :: Ann expr dom stage
-                     }
-  | GuardedCaseRhss  { _rhsCaseGuards :: AnnList (GuardedCaseRhs' expr) dom stage
-                     }
-type CaseRhs = CaseRhs' Expr
-type CmdCaseRhs = CaseRhs' Cmd
-                     
--- | A guarded right-hand side of pattern matches binding (@ | x > 3 -> 2 @)      
-data GuardedCaseRhs' expr dom stage
-  = GuardedCaseRhs { _caseGuardStmts :: AnnList RhsGuard dom stage -- ^ Cannot be empty.
-                   , _caseGuardExpr :: Ann expr dom stage
-                   } 
-type GuardedCaseRhs = GuardedCaseRhs' Expr
-type CmdGuardedCaseRhs = GuardedCaseRhs' Cmd
-               
--- | Pragmas that can be applied to expressions
-data ExprPragma dom stage
-  = CorePragma      { _pragmaStr :: Ann StringNode dom stage
-                    }
-  | SccPragma       { _pragmaStr :: Ann StringNode dom stage
-                    }
-  | GeneratedPragma { _pragmaSrcRange :: Ann SourceRange dom stage
-                    }
-
--- | In-AST source ranges (for generated pragmas)
-data SourceRange dom stage
-  = SourceRange { _srFileName :: Ann StringNode dom stage
-                , _srFromLine :: Ann Number dom stage
-                , _srFromCol :: Ann Number dom stage
-                , _srToLine :: Ann Number dom stage
-                , _srToCol :: Ann Number dom stage
-                }  
-                
-data Number dom stage
-  = Number { _numberInteger :: Integer 
-           }
-        
-data Cmd dom stage
-  = ArrowAppCmd   { _cmdLhs :: Ann Expr dom stage
-                  , _cmdArrowOp :: Ann ArrowAppl dom stage
-                  , _cmdRhs :: Ann Expr dom stage
-                  }
-  | ArrowFormCmd  { _cmdExpr :: Ann Expr dom stage
-                  , _cmdInnerCmds :: AnnList Cmd dom stage
-                  }
-  | AppCmd        { _cmdInnerCmd :: Ann Cmd dom stage
-                  , _cmdApplied :: Ann Expr dom stage
-                  }
-  | InfixCmd      { _cmdLeftCmd :: Ann Cmd dom stage
-                  , _cmdOperator :: Ann Name dom stage
-                  , _cmdRightCmd :: Ann Cmd dom stage
-                  }
-  | LambdaCmd     { _cmdBindings :: AnnList Pattern dom stage -- ^ at least one
-                  , _cmdInner :: Ann Cmd dom stage
-                  }
-  | ParenCmd      { _cmdInner :: Ann Cmd dom stage
-                  }
-  | CaseCmd       { _cmdExpr :: Ann Expr dom stage
-                  , _cmdAlts :: AnnList CmdAlt dom stage
-                  }
-  | IfCmd         { _cmdExpr :: Ann Expr dom stage
-                  , _cmdThen :: Ann Cmd dom stage
-                  , _cmdElse :: Ann Cmd dom stage
-                  }
-  | LetCmd        { _cmdBinds :: AnnList LocalBind dom stage -- ^ nonempty
-                  , _cmdInner :: Ann Cmd dom stage
-                  }
-  | DoCmd         { _cmdStmts :: AnnList (Stmt' Cmd) dom stage
-                  }
- 
− Language/Haskell/Tools/AST/Exprs.hs-boot
@@ -1,11 +0,0 @@-{-# LANGUAGE RoleAnnotations #-}
-module Language.Haskell.Tools.AST.Exprs where
-
-type role Expr nominal nominal
-data Expr dom stage
-
-type role Cmd nominal nominal
-data Cmd dom stage
-
-type role FieldWildcard phantom phantom
-data FieldWildcard dom stage
Language/Haskell/Tools/AST/Helpers.hs view
@@ -3,6 +3,9 @@            , RankNTypes 
            , ScopedTypeVariables
            , TypeFamilies
+           , FlexibleInstances
+           , UndecidableInstances
+           , PatternSynonyms
            #-}
 
 -- | Helper functions for using the AST.
@@ -11,7 +14,7 @@ import SrcLoc
 import qualified Name as GHC
 
-import Control.Reference hiding (element)
+import Control.Reference
 import Control.Monad
 import Data.List
 import Data.Maybe
@@ -19,70 +22,39 @@ import Data.Generics.Uniplate.Operations
 
 import Language.Haskell.Tools.AST.Ann
-import Language.Haskell.Tools.AST.Modules
-import Language.Haskell.Tools.AST.Decls
-import Language.Haskell.Tools.AST.Binds
-import Language.Haskell.Tools.AST.Types
-import Language.Haskell.Tools.AST.Base
+import Language.Haskell.Tools.AST.Representation.Modules
+import Language.Haskell.Tools.AST.Representation.Decls
+import Language.Haskell.Tools.AST.Representation.Binds
+import Language.Haskell.Tools.AST.Representation.Types
+import Language.Haskell.Tools.AST.Representation.Names
 import Language.Haskell.Tools.AST.References
 import Language.Haskell.Tools.AST.SemaInfoTypes
+import Language.Haskell.Tools.AST.SemaInfoClasses
 
 import Debug.Trace
-
-ordByOccurrence :: QualifiedName dom stage -> QualifiedName dom stage -> Ordering
-ordByOccurrence = compare `on` nameElements
-
--- | The occurrence of the name.
-nameString :: QualifiedName dom stage -> String
-nameString = intercalate "." . nameElements
-
--- | The qualifiers and the unqualified name
-nameElements :: QualifiedName dom stage -> [String]
-nameElements n = (n ^? qualifiers&annList&element&simpleNameStr) 
-                    ++ [n ^. unqualifiedName&element&simpleNameStr]
-
--- | The qualifier of the name
-nameQualifier :: QualifiedName dom stage -> [String]
-nameQualifier n = n ^? qualifiers&annList&element&simpleNameStr
-         
+ 
 -- | Does the import declaration import only the explicitly listed elements?
-importIsExact :: ImportDecl dom stage -> Bool
-importIsExact = isJust . (^? importSpec&annJust&element&importSpecList)  
-  
--- | Does the import declaration has a 'hiding' clause?
-importIsHiding :: ImportDecl dom stage -> Bool
-importIsHiding = isJust . (^? importSpec&annJust&element&importSpecHiding)
-       
--- | All elements that are explicitly listed to be imported in the import declaration
-importExacts :: Simple Traversal (ImportDecl dom stage) (IESpec dom stage)
-importExacts = importSpec&annJust&element&importSpecList&annList&element
+importIsExact :: Ann UImportDecl dom stage -> Bool
+importIsExact = isJust . (^? importSpec&annJust&importSpecList)  
 
--- | All elements that are hidden in an import
-importHidings :: Simple Traversal (ImportDecl dom stage) (IESpec dom stage)
-importHidings = importSpec&annJust&element&importSpecList&annList&element
-         
--- | Possible qualifiers to use imported definitions         
-importQualifiers :: ImportDecl dom stage -> [[String]]
-importQualifiers imp 
-  = (if isAnnNothing (imp ^. importQualified) then [[]] else [])
-      ++ [imp ^? importAs&annJust&element&importRename&element&moduleNameString]
-        
-bindingName :: (SemanticInfo dom QualifiedName ~ ni) => Simple Traversal (Ann ValueBind dom stage) ni
-bindingName = element&(valBindPat&element&patternName&element&simpleName 
-                        &+& funBindMatches&annList&element&matchLhs&element
-                              &(matchLhsName&element&simpleName &+& matchLhsOperator&element&operatorName))
-                     &semantics
-                     
-declHeadNames :: Simple Traversal (Ann DeclHead dom stage) (Ann QualifiedName dom stage)
-declHeadNames = element & (dhName&element&simpleName &+& dhBody&declHeadNames &+& dhAppFun&declHeadNames &+& dhOperator&element&operatorName)
+-- | Accesses the name of a function or value binding
+bindingName :: (SemanticInfo dom UQualifiedName ~ ni) => Simple Traversal (Ann UValueBind dom stage) (Ann UQualifiedName dom stage)
+bindingName = (valBindPat&patternName&simpleName 
+                        &+& funBindMatches&annList&matchLhs
+                              &(matchLhsName&simpleName &+& matchLhsOperator&operatorName))
 
-               
-typeParams :: Simple Traversal (Ann Type dom stage) (Ann Type dom stage)
+-- | Accesses that name of a declaration through the declaration head.
+declHeadNames :: Simple Traversal (Ann UDeclHead dom stage) (Ann UQualifiedName dom stage)
+declHeadNames = (dhName&simpleName &+& dhBody&declHeadNames &+& dhAppFun&declHeadNames &+& dhOperator&operatorName)
+
+-- | A reference to access type arguments to a type constructor call that may be universally qualified
+-- or parenthesized.
+typeParams :: Simple Traversal (Ann UType dom stage) (Ann UType dom stage)
 typeParams = fromTraversal typeParamsTrav
-  where typeParamsTrav f (Ann a (TyFun p r)) = Ann a <$> (TyFun <$> f p <*> typeParamsTrav f r)
-        typeParamsTrav f (Ann a (TyForall vs t)) = Ann a <$> (TyForall vs <$> typeParamsTrav f t)
-        typeParamsTrav f (Ann a (TyCtx ctx t)) = Ann a <$> (TyCtx ctx <$> typeParamsTrav f t)
-        typeParamsTrav f (Ann a (TyParen t)) = Ann a <$> (TyParen <$> typeParamsTrav f t)
+  where typeParamsTrav f (Ann a (UTyFun p r)) = Ann a <$> (UTyFun <$> f p <*> typeParamsTrav f r)
+        typeParamsTrav f (Ann a (UTyForall vs t)) = Ann a <$> (UTyForall vs <$> typeParamsTrav f t)
+        typeParamsTrav f (Ann a (UTyCtx ctx t)) = Ann a <$> (UTyCtx ctx <$> typeParamsTrav f t)
+        typeParamsTrav f (Ann a (UTyParen t)) = Ann a <$> (UTyParen <$> typeParamsTrav f t)
         typeParamsTrav f t = f t
         
 
@@ -90,50 +62,6 @@ semantics :: Simple Lens (Ann elem dom stage) (SemanticInfo dom elem)
 semantics = annotation&semanticInfo
 
-dhNames :: (SemanticInfo dom QualifiedName ~ k) => Simple Traversal (Ann DeclHead dom stage) k
-dhNames = declHeadNames & semantics
-
--- | A type class for transformations that work on both top-level and local definitions
-class BindingElem d where
-  sigBind :: Simple Partial (d dom stage) (Ann TypeSignature dom stage)
-  valBind :: Simple Partial (d dom stage) (Ann ValueBind dom stage)
-  createTypeSig :: Ann TypeSignature dom stage -> d dom stage
-  createBinding :: Ann ValueBind dom stage -> d dom stage
-  isTypeSig :: d dom stage -> Bool
-  isBinding :: d dom stage -> Bool
-  
-instance BindingElem Decl where
-  sigBind = declTypeSig
-  valBind = declValBind
-  createTypeSig = TypeSigDecl
-  createBinding = ValueBinding
-  isTypeSig (TypeSigDecl _) = True
-  isTypeSig _ = False
-  isBinding (ValueBinding _) = True
-  isBinding _ = False
-
-instance BindingElem LocalBind where
-  sigBind = localSig
-  valBind = localVal
-  createTypeSig = LocalSignature
-  createBinding = LocalValBind
-  isTypeSig (LocalSignature _) = True
-  isTypeSig _ = False
-  isBinding (LocalValBind _) = True
-  isBinding _ = False
-
-bindName :: (BindingElem d, SemanticInfo dom QualifiedName ~ k) => Simple Traversal (d dom stage) k
-bindName = valBind&bindingName &+& sigBind&element&tsName&annList&element&simpleName&semantics
-
-valBindsInList :: BindingElem d => Simple Traversal (AnnList d dom stage) (Ann ValueBind dom stage)
-valBindsInList = annList & element & valBind
-     
-getValBindInList :: (BindingElem d, SourceInfo stage) => RealSrcSpan -> AnnList d dom stage -> Maybe (Ann ValueBind dom stage)
-getValBindInList sp ls = case ls ^? valBindsInList & filtered (isInside sp) of
-  [] -> Nothing
-  [n] -> Just n
-  _ -> error "getValBindInList: Multiple nodes"
-
 -- | Get all nodes that contain a given source range
 nodesContaining :: (HasRange (inner dom stage), Biplate (node dom stage) (inner dom stage), SourceInfo stage) 
                 => RealSrcSpan -> Simple Traversal (node dom stage) (inner dom stage)
@@ -158,11 +86,10 @@ nodesWithRange :: (Biplate (Ann node dom stage) (Ann inner dom stage), SourceInfo stage) 
                => RealSrcSpan -> Simple Traversal (Ann node dom stage) (Ann inner dom stage)
 nodesWithRange rng = biplateRef & filtered (hasRange rng) 
-                    
--- | True, if the node has the given range                     
-hasRange :: SourceInfo stage => RealSrcSpan -> Ann inner dom stage -> Bool
-hasRange rng node = case getRange node of RealSrcSpan sp -> sp == rng
-                                          _              -> False
+  where -- True, if the node has the given range                     
+        hasRange :: SourceInfo stage => RealSrcSpan -> Ann inner dom stage -> Bool
+        hasRange rng node = case getRange node of RealSrcSpan sp -> sp == rng
+                                                  _              -> False
 
 -- | Get the shortest source range that contains the given 
 getNodeContaining :: (Biplate (Ann node dom stage) (Ann inner dom stage), SourceInfo stage, HasRange (Ann inner dom stage)) 
@@ -171,16 +98,38 @@   [] -> Nothing
   results -> Just $ minimumBy (compareRangeLength `on` getRange) results
 
--- | Compares two NESTED source spans based on their lengths
+-- | Compares two source spans based on their lengths. Can only used for NESTED spans.
 compareRangeLength :: SrcSpan -> SrcSpan -> Ordering
 compareRangeLength (RealSrcSpan sp1) (RealSrcSpan sp2)
   = (lineDiff sp1 `compare` lineDiff sp2) `mappend` (colDiff sp1 `compare` colDiff sp2)
   where lineDiff sp = srcLocLine (realSrcSpanStart sp) - srcLocLine (realSrcSpanEnd sp)
         colDiff sp = srcLocCol (realSrcSpanStart sp) - srcLocCol (realSrcSpanEnd sp)
 
-getNode :: (Biplate (Ann node dom stage) (Ann inner dom stage), SourceInfo stage) 
-        => RealSrcSpan -> Ann node dom stage -> Ann inner dom stage
-getNode sp node = case node ^? nodesWithRange sp of
-  [] -> error "getNode: The node cannot be found"
-  [n] -> n
-  _ -> error "getNode: Multiple nodes"
+-- | A class to access the names of named elements. Have to locate where does the AST element store its name.
+-- The returned name will be the one that was marked isDefining.
+class NamedElement elem where
+  elementName :: Simple Traversal (Ann elem dom st) (Ann UQualifiedName dom st)
+
+instance NamedElement UDecl where
+  elementName = (declHead & declHeadNames) 
+                  &+& (declTypeFamily & tfHead & declHeadNames)
+                  &+& (declValBind & bindingName)
+                  &+& (declName & simpleName)
+                  &+& (declPatSyn & patLhs & (patName & simpleName &+& patSynOp & operatorName))
+
+instance NamedElement ULocalBind where
+  elementName = localVal&bindingName &+& localSig&tsName&annList&simpleName
+
+inScope :: GHC.Name -> Scope -> Bool
+inScope n sc = any (n `elem`) sc
+
+-- * Pattern synonyms for annotated lists and maybes
+                        
+pattern AnnList :: [Ann elem dom stage] -> AnnListG elem dom stage
+pattern AnnList elems <- AnnListG _ elems
+
+pattern AnnNothing :: AnnMaybeG elem dom stage
+pattern AnnNothing <- AnnMaybeG _ Nothing
+
+pattern AnnJust :: Ann elem dom stage -> AnnMaybeG elem dom stage
+pattern AnnJust elem <- AnnMaybeG _ (Just elem)
Language/Haskell/Tools/AST/Instances/Data.hs view
@@ -4,131 +4,131 @@ 
 import Data.Data
 
-import Language.Haskell.Tools.AST.Modules
-import Language.Haskell.Tools.AST.TH
-import Language.Haskell.Tools.AST.Decls
-import Language.Haskell.Tools.AST.Binds
-import Language.Haskell.Tools.AST.Exprs
-import Language.Haskell.Tools.AST.Stmts
-import Language.Haskell.Tools.AST.Patterns
-import Language.Haskell.Tools.AST.Types
-import Language.Haskell.Tools.AST.Kinds
-import Language.Haskell.Tools.AST.Literals
-import Language.Haskell.Tools.AST.Base
+import Language.Haskell.Tools.AST.Representation.Modules
+import Language.Haskell.Tools.AST.Representation.TH
+import Language.Haskell.Tools.AST.Representation.Decls
+import Language.Haskell.Tools.AST.Representation.Binds
+import Language.Haskell.Tools.AST.Representation.Exprs
+import Language.Haskell.Tools.AST.Representation.Stmts
+import Language.Haskell.Tools.AST.Representation.Patterns
+import Language.Haskell.Tools.AST.Representation.Types
+import Language.Haskell.Tools.AST.Representation.Kinds
+import Language.Haskell.Tools.AST.Representation.Literals
+import Language.Haskell.Tools.AST.Representation.Names
 import Language.Haskell.Tools.AST.Ann
 
 -- Annotations
 deriving instance (DomainWith e dom, SourceInfo stage, Typeable e, Data (e dom stage)) => Data (Ann e dom stage)
-deriving instance (DomainWith e dom, SourceInfo stage, Typeable e, Data (e dom stage)) => Data (AnnMaybe e dom stage)
-deriving instance (DomainWith e dom, SourceInfo stage, Typeable e, Data (e dom stage)) => Data (AnnList e dom stage)
+deriving instance (DomainWith e dom, SourceInfo stage, Typeable e, Data (e dom stage)) => Data (AnnMaybeG e dom stage)
+deriving instance (DomainWith e dom, SourceInfo stage, Typeable e, Data (e dom stage)) => Data (AnnListG e dom stage)
 
 -- Modules
-deriving instance (Domain dom, SourceInfo stage) => Data (Module dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (ModuleHead dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (ExportSpecList dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (ExportSpec dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (IESpec dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (SubSpec dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (ModulePragma dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (FilePragma dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (ImportDecl dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (ImportSpec dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (ImportQualified dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (ImportSource dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (ImportSafe dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (TypeNamespace dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (ImportRenaming dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UModule dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UModuleHead dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UExportSpecs dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UExportSpec dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UIESpec dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (USubSpec dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UModulePragma dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UFilePragma dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UImportDecl dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UImportSpec dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UImportQualified dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UImportSource dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UImportSafe dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UTypeNamespace dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UImportRenaming dom stage)
 
 -- Declarations
-deriving instance (Domain dom, SourceInfo stage) => Data (Decl dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (ClassBody dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (ClassElement dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (DeclHead dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (InstBody dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (InstBodyDecl dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (GadtConDecl dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (GadtConType dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (FieldWildcard dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (FunDeps dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (FunDep dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (ConDecl dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (FieldDecl dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (Deriving dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (InstanceRule dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (InstanceHead dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (TypeEqn dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (KindConstraint dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (TyVar dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (Type dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (Kind dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (Context dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (Assertion dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (Expr dom stage)
-deriving instance (DomainWith expr dom, SourceInfo stage, Typeable expr, Data (expr dom stage)) => Data (Stmt' expr dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (CompStmt dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (ValueBind dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (Pattern dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (PatternField dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (Splice dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UDecl dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UClassBody dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UClassElement dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UDeclHead dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UInstBody dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UInstBodyDecl dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UGadtConDecl dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UGadtConType dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UFieldWildcard dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UFunDeps dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UFunDep dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UConDecl dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UFieldDecl dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UDeriving dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UInstanceRule dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UInstanceHead dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UTypeEqn dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UKindConstraint dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UTyVar dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UType dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UKind dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UContext dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UAssertion dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UExpr dom stage)
+deriving instance (DomainWith expr dom, SourceInfo stage, Typeable expr, Data (expr dom stage)) => Data (UStmt' expr dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UCompStmt dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UValueBind dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UPattern dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UPatternField dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (USplice dom stage)
 deriving instance (Domain dom, SourceInfo stage) => Data (QQString dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (Match dom stage)
-deriving instance (DomainWith expr dom, SourceInfo stage, Typeable expr, Data (expr dom stage)) => Data (Alt' expr dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (Rhs dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (GuardedRhs dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (FieldUpdate dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (Bracket dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (TopLevelPragma dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (Rule dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (AnnotationSubject dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (MinimalFormula dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (ExprPragma dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (SourceRange dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UMatch dom stage)
+deriving instance (DomainWith expr dom, SourceInfo stage, Typeable expr, Data (expr dom stage)) => Data (UAlt' expr dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (URhs dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UGuardedRhs dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UFieldUpdate dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UBracket dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UTopLevelPragma dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (URule dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UAnnotationSubject dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UMinimalFormula dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UExprPragma dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (USourceRange dom stage)
 deriving instance (Domain dom, SourceInfo stage) => Data (Number dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (QuasiQuote dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (RhsGuard dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (LocalBind dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (LocalBinds dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (FixitySignature dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (TypeSignature dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (ListCompBody dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (TupSecElem dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (TypeFamily dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (TypeFamilySpec dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (InjectivityAnn dom stage)
-deriving instance (DomainWith expr dom, SourceInfo stage, Typeable expr, Data (expr dom stage)) => Data (CaseRhs' expr dom stage)
-deriving instance (DomainWith expr dom, SourceInfo stage, Typeable expr, Data (expr dom stage))=> Data (GuardedCaseRhs' expr dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (PatternSynonym dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (PatSynRhs dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (PatSynLhs dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (PatSynWhere dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (PatternTypeSignature dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (Role dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (Cmd dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (LanguageExtension dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (MatchLhs dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UQuasiQuote dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (URhsGuard dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (ULocalBind dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (ULocalBinds dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UFixitySignature dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UTypeSignature dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UListCompBody dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UTupSecElem dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UTypeFamily dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UTypeFamilySpec dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UInjectivityAnn dom stage)
+deriving instance (DomainWith expr dom, SourceInfo stage, Typeable expr, Data (expr dom stage)) => Data (UCaseRhs' expr dom stage)
+deriving instance (DomainWith expr dom, SourceInfo stage, Typeable expr, Data (expr dom stage))=> Data (UGuardedCaseRhs' expr dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UPatternSynonym dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UPatSynRhs dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UPatSynLhs dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UPatSynWhere dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UPatternTypeSignature dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (URole dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UCmd dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (ULanguageExtension dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UMatchLhs dom stage)
 
--- Literal
-deriving instance (Domain dom, SourceInfo stage) => Data (Literal dom stage)
-deriving instance (DomainWith k dom, SourceInfo stage, Typeable k, Data (k dom stage)) => Data (Promoted k dom stage)
+-- ULiteral
+deriving instance (Domain dom, SourceInfo stage) => Data (ULiteral dom stage)
+deriving instance (DomainWith k dom, SourceInfo stage, Typeable k, Data (k dom stage)) => Data (UPromoted k dom stage)
 
 -- Base
-deriving instance (Domain dom, SourceInfo stage) => Data (Operator dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (Name dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (QualifiedName dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (ModuleName dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (UnqualName dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (StringNode dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (DataOrNewtypeKeyword dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (DoKind dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UOperator dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UName dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UQualifiedName dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UModuleName dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UNamePart dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UStringNode dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UDataOrNewtypeKeyword dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UDoKind dom stage)
 deriving instance (Domain dom, SourceInfo stage) => Data (TypeKeyword dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (OverlapPragma dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (CallConv dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (ArrowAppl dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (Safety dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (ConlikeAnnot dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UOverlapPragma dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UCallConv dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UArrowAppl dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (USafety dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UConlikeAnnot dom stage)
 deriving instance (Domain dom, SourceInfo stage) => Data (Assoc dom stage)
 deriving instance (Domain dom, SourceInfo stage) => Data (Precedence dom stage)
 deriving instance (Domain dom, SourceInfo stage) => Data (LineNumber dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Data (PhaseControl dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Data (UPhaseControl dom stage)
 deriving instance (Domain dom, SourceInfo stage) => Data (PhaseNumber dom stage)
 deriving instance (Domain dom, SourceInfo stage) => Data (PhaseInvert dom stage)
Language/Haskell/Tools/AST/Instances/Eq.hs view
@@ -2,136 +2,136 @@ {-# LANGUAGE FlexibleContexts, StandaloneDeriving #-}
 module Language.Haskell.Tools.AST.Instances.Eq where
 
-import Language.Haskell.Tools.AST.Modules
-import Language.Haskell.Tools.AST.TH
-import Language.Haskell.Tools.AST.Decls
-import Language.Haskell.Tools.AST.Binds
-import Language.Haskell.Tools.AST.Exprs
-import Language.Haskell.Tools.AST.Stmts
-import Language.Haskell.Tools.AST.Patterns
-import Language.Haskell.Tools.AST.Types
-import Language.Haskell.Tools.AST.Kinds
-import Language.Haskell.Tools.AST.Literals
-import Language.Haskell.Tools.AST.Base
+import Language.Haskell.Tools.AST.Representation.Modules
+import Language.Haskell.Tools.AST.Representation.TH
+import Language.Haskell.Tools.AST.Representation.Decls
+import Language.Haskell.Tools.AST.Representation.Binds
+import Language.Haskell.Tools.AST.Representation.Exprs
+import Language.Haskell.Tools.AST.Representation.Stmts
+import Language.Haskell.Tools.AST.Representation.Patterns
+import Language.Haskell.Tools.AST.Representation.Types
+import Language.Haskell.Tools.AST.Representation.Kinds
+import Language.Haskell.Tools.AST.Representation.Literals
+import Language.Haskell.Tools.AST.Representation.Names
 import Language.Haskell.Tools.AST.Ann
 
 -- Annotations
 instance (Eq (e dom stage)) => Eq (Ann e dom stage) where
   Ann _ e1 == Ann _ e2 = e1 == e2
 
-instance (Eq (e dom stage)) => Eq (AnnMaybe e dom stage) where
-  AnnMaybe _ e1 == AnnMaybe _ e2 = e1 == e2
+instance (Eq (e dom stage)) => Eq (AnnMaybeG e dom stage) where
+  AnnMaybeG _ e1 == AnnMaybeG _ e2 = e1 == e2
 
-instance (Eq (e dom stage)) => Eq (AnnList e dom stage) where
-  AnnList _ e1 == AnnList _ e2 = e1 == e2
+instance (Eq (e dom stage)) => Eq (AnnListG e dom stage) where
+  AnnListG _ e1 == AnnListG _ e2 = e1 == e2
 
 -- Modules
-deriving instance Eq (Module dom stage)
-deriving instance Eq (ModuleHead dom stage)
-deriving instance Eq (ExportSpecList dom stage)
-deriving instance Eq (ExportSpec dom stage)
-deriving instance Eq (IESpec dom stage)
-deriving instance Eq (SubSpec dom stage)
-deriving instance Eq (ModulePragma dom stage)
-deriving instance Eq (FilePragma dom stage)
-deriving instance Eq (ImportDecl dom stage)
-deriving instance Eq (ImportSpec dom stage)
-deriving instance Eq (ImportQualified dom stage)
-deriving instance Eq (ImportSource dom stage)
-deriving instance Eq (ImportSafe dom stage)
-deriving instance Eq (TypeNamespace dom stage)
-deriving instance Eq (ImportRenaming dom stage)
+deriving instance Eq (UModule dom stage)
+deriving instance Eq (UModuleHead dom stage)
+deriving instance Eq (UExportSpecs dom stage)
+deriving instance Eq (UExportSpec dom stage)
+deriving instance Eq (UIESpec dom stage)
+deriving instance Eq (USubSpec dom stage)
+deriving instance Eq (UModulePragma dom stage)
+deriving instance Eq (UFilePragma dom stage)
+deriving instance Eq (UImportDecl dom stage)
+deriving instance Eq (UImportSpec dom stage)
+deriving instance Eq (UImportQualified dom stage)
+deriving instance Eq (UImportSource dom stage)
+deriving instance Eq (UImportSafe dom stage)
+deriving instance Eq (UTypeNamespace dom stage)
+deriving instance Eq (UImportRenaming dom stage)
 
 -- Declarations
-deriving instance Eq (Decl dom stage)
-deriving instance Eq (ClassBody dom stage)
-deriving instance Eq (ClassElement dom stage)
-deriving instance Eq (DeclHead dom stage)
-deriving instance Eq (InstBody dom stage)
-deriving instance Eq (InstBodyDecl dom stage)
-deriving instance Eq (GadtConDecl dom stage)
-deriving instance Eq (GadtConType dom stage)
-deriving instance Eq (FieldWildcard dom stage)
-deriving instance Eq (FunDeps dom stage)
-deriving instance Eq (FunDep dom stage)
-deriving instance Eq (ConDecl dom stage)
-deriving instance Eq (FieldDecl dom stage)
-deriving instance Eq (Deriving dom stage)
-deriving instance Eq (InstanceRule dom stage)
-deriving instance Eq (InstanceHead dom stage)
-deriving instance Eq (TypeEqn dom stage)
-deriving instance Eq (KindConstraint dom stage)
-deriving instance Eq (TyVar dom stage)
-deriving instance Eq (Type dom stage)
-deriving instance Eq (Kind dom stage)
-deriving instance Eq (Context dom stage)
-deriving instance Eq (Assertion dom stage)
-deriving instance Eq (Expr dom stage)
-deriving instance Eq (expr dom stage) => Eq (Stmt' expr dom stage)
-deriving instance Eq (CompStmt dom stage)
-deriving instance Eq (ValueBind dom stage)
-deriving instance Eq (Pattern dom stage)
-deriving instance Eq (PatternField dom stage)
-deriving instance Eq (Splice dom stage)
+deriving instance Eq (UDecl dom stage)
+deriving instance Eq (UClassBody dom stage)
+deriving instance Eq (UClassElement dom stage)
+deriving instance Eq (UDeclHead dom stage)
+deriving instance Eq (UInstBody dom stage)
+deriving instance Eq (UInstBodyDecl dom stage)
+deriving instance Eq (UGadtConDecl dom stage)
+deriving instance Eq (UGadtConType dom stage)
+deriving instance Eq (UFieldWildcard dom stage)
+deriving instance Eq (UFunDeps dom stage)
+deriving instance Eq (UFunDep dom stage)
+deriving instance Eq (UConDecl dom stage)
+deriving instance Eq (UFieldDecl dom stage)
+deriving instance Eq (UDeriving dom stage)
+deriving instance Eq (UInstanceRule dom stage)
+deriving instance Eq (UInstanceHead dom stage)
+deriving instance Eq (UTypeEqn dom stage)
+deriving instance Eq (UKindConstraint dom stage)
+deriving instance Eq (UTyVar dom stage)
+deriving instance Eq (UType dom stage)
+deriving instance Eq (UKind dom stage)
+deriving instance Eq (UContext dom stage)
+deriving instance Eq (UAssertion dom stage)
+deriving instance Eq (UExpr dom stage)
+deriving instance Eq (expr dom stage) => Eq (UStmt' expr dom stage)
+deriving instance Eq (UCompStmt dom stage)
+deriving instance Eq (UValueBind dom stage)
+deriving instance Eq (UPattern dom stage)
+deriving instance Eq (UPatternField dom stage)
+deriving instance Eq (USplice dom stage)
 deriving instance Eq (QQString dom stage)
-deriving instance Eq (Match dom stage)
-deriving instance Eq (expr dom stage) => Eq (Alt' expr dom stage)
-deriving instance Eq (Rhs dom stage)
-deriving instance Eq (GuardedRhs dom stage)
-deriving instance Eq (FieldUpdate dom stage)
-deriving instance Eq (Bracket dom stage)
-deriving instance Eq (TopLevelPragma dom stage)
-deriving instance Eq (Rule dom stage)
-deriving instance Eq (AnnotationSubject dom stage)
-deriving instance Eq (MinimalFormula dom stage)
-deriving instance Eq (ExprPragma dom stage)
-deriving instance Eq (SourceRange dom stage)
+deriving instance Eq (UMatch dom stage)
+deriving instance Eq (expr dom stage) => Eq (UAlt' expr dom stage)
+deriving instance Eq (URhs dom stage)
+deriving instance Eq (UGuardedRhs dom stage)
+deriving instance Eq (UFieldUpdate dom stage)
+deriving instance Eq (UBracket dom stage)
+deriving instance Eq (UTopLevelPragma dom stage)
+deriving instance Eq (URule dom stage)
+deriving instance Eq (UAnnotationSubject dom stage)
+deriving instance Eq (UMinimalFormula dom stage)
+deriving instance Eq (UExprPragma dom stage)
+deriving instance Eq (USourceRange dom stage)
 deriving instance Eq (Number dom stage)
-deriving instance Eq (QuasiQuote dom stage)
-deriving instance Eq (RhsGuard dom stage)
-deriving instance Eq (LocalBind dom stage)
-deriving instance Eq (LocalBinds dom stage)
-deriving instance Eq (FixitySignature dom stage)
-deriving instance Eq (TypeSignature dom stage)
-deriving instance Eq (ListCompBody dom stage)
-deriving instance Eq (TupSecElem dom stage)
-deriving instance Eq (TypeFamily dom stage)
-deriving instance Eq (TypeFamilySpec dom stage)
-deriving instance Eq (InjectivityAnn dom stage)
-deriving instance Eq (expr dom stage) => Eq (CaseRhs' expr dom stage)
-deriving instance Eq (expr dom stage) => Eq (GuardedCaseRhs' expr dom stage)
-deriving instance Eq (PatternSynonym dom stage)
-deriving instance Eq (PatSynRhs dom stage)
-deriving instance Eq (PatSynLhs dom stage)
-deriving instance Eq (PatSynWhere dom stage)
-deriving instance Eq (PatternTypeSignature dom stage)
-deriving instance Eq (Role dom stage)
-deriving instance Eq (Cmd dom stage)
-deriving instance Eq (LanguageExtension dom stage)
-deriving instance Eq (MatchLhs dom stage)
+deriving instance Eq (UQuasiQuote dom stage)
+deriving instance Eq (URhsGuard dom stage)
+deriving instance Eq (ULocalBind dom stage)
+deriving instance Eq (ULocalBinds dom stage)
+deriving instance Eq (UFixitySignature dom stage)
+deriving instance Eq (UTypeSignature dom stage)
+deriving instance Eq (UListCompBody dom stage)
+deriving instance Eq (UTupSecElem dom stage)
+deriving instance Eq (UTypeFamily dom stage)
+deriving instance Eq (UTypeFamilySpec dom stage)
+deriving instance Eq (UInjectivityAnn dom stage)
+deriving instance Eq (expr dom stage) => Eq (UCaseRhs' expr dom stage)
+deriving instance Eq (expr dom stage) => Eq (UGuardedCaseRhs' expr dom stage)
+deriving instance Eq (UPatternSynonym dom stage)
+deriving instance Eq (UPatSynRhs dom stage)
+deriving instance Eq (UPatSynLhs dom stage)
+deriving instance Eq (UPatSynWhere dom stage)
+deriving instance Eq (UPatternTypeSignature dom stage)
+deriving instance Eq (URole dom stage)
+deriving instance Eq (UCmd dom stage)
+deriving instance Eq (ULanguageExtension dom stage)
+deriving instance Eq (UMatchLhs dom stage)
 
--- Literal
-deriving instance Eq (Literal dom stage)
-deriving instance Eq (k dom stage) => Eq (Promoted k dom stage)
+-- ULiteral
+deriving instance Eq (ULiteral dom stage)
+deriving instance Eq (k dom stage) => Eq (UPromoted k dom stage)
 
 -- Base
-deriving instance Eq (Operator dom stage)
-deriving instance Eq (Name dom stage)
-deriving instance Eq (QualifiedName dom stage)
-deriving instance Eq (ModuleName dom stage)
-deriving instance Eq (UnqualName dom stage)
-deriving instance Eq (StringNode dom stage)
-deriving instance Eq (DataOrNewtypeKeyword dom stage)
-deriving instance Eq (DoKind dom stage)
+deriving instance Eq (UOperator dom stage)
+deriving instance Eq (UName dom stage)
+deriving instance Eq (UQualifiedName dom stage)
+deriving instance Eq (UModuleName dom stage)
+deriving instance Eq (UNamePart dom stage)
+deriving instance Eq (UStringNode dom stage)
+deriving instance Eq (UDataOrNewtypeKeyword dom stage)
+deriving instance Eq (UDoKind dom stage)
 deriving instance Eq (TypeKeyword dom stage)
-deriving instance Eq (OverlapPragma dom stage)
-deriving instance Eq (CallConv dom stage)
-deriving instance Eq (ArrowAppl dom stage)
-deriving instance Eq (Safety dom stage)
-deriving instance Eq (ConlikeAnnot dom stage)
+deriving instance Eq (UOverlapPragma dom stage)
+deriving instance Eq (UCallConv dom stage)
+deriving instance Eq (UArrowAppl dom stage)
+deriving instance Eq (USafety dom stage)
+deriving instance Eq (UConlikeAnnot dom stage)
 deriving instance Eq (Assoc dom stage)
 deriving instance Eq (Precedence dom stage)
 deriving instance Eq (LineNumber dom stage)
-deriving instance Eq (PhaseControl dom stage)
+deriving instance Eq (UPhaseControl dom stage)
 deriving instance Eq (PhaseNumber dom stage)
 deriving instance Eq (PhaseInvert dom stage)
Language/Haskell/Tools/AST/Instances/Generic.hs view
@@ -4,132 +4,132 @@ 
 import GHC.Generics
 
-import Language.Haskell.Tools.AST.Modules
-import Language.Haskell.Tools.AST.TH
-import Language.Haskell.Tools.AST.Decls
-import Language.Haskell.Tools.AST.Binds
-import Language.Haskell.Tools.AST.Exprs
-import Language.Haskell.Tools.AST.Stmts
-import Language.Haskell.Tools.AST.Patterns
-import Language.Haskell.Tools.AST.Types
-import Language.Haskell.Tools.AST.Kinds
-import Language.Haskell.Tools.AST.Literals
-import Language.Haskell.Tools.AST.Base
+import Language.Haskell.Tools.AST.Representation.Modules
+import Language.Haskell.Tools.AST.Representation.TH
+import Language.Haskell.Tools.AST.Representation.Decls
+import Language.Haskell.Tools.AST.Representation.Binds
+import Language.Haskell.Tools.AST.Representation.Exprs
+import Language.Haskell.Tools.AST.Representation.Stmts
+import Language.Haskell.Tools.AST.Representation.Patterns
+import Language.Haskell.Tools.AST.Representation.Types
+import Language.Haskell.Tools.AST.Representation.Kinds
+import Language.Haskell.Tools.AST.Representation.Literals
+import Language.Haskell.Tools.AST.Representation.Names
 import Language.Haskell.Tools.AST.Ann
 
 -- Annotations
 deriving instance (Domain dom, SourceInfo stage, Generic (e dom stage)) => Generic (Ann e dom stage)
-deriving instance (Domain dom, SourceInfo stage, Generic (e dom stage)) => Generic (AnnMaybe e dom stage)
-deriving instance (Domain dom, SourceInfo stage, Generic (e dom stage)) => Generic (AnnList e dom stage)
+deriving instance (Domain dom, SourceInfo stage, Generic (e dom stage)) => Generic (AnnMaybeG e dom stage)
+deriving instance (Domain dom, SourceInfo stage, Generic (e dom stage)) => Generic (AnnListG e dom stage)
 
 -- Modules
-deriving instance (Domain dom, SourceInfo stage) => Generic (Module dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (ModuleHead dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (ExportSpecList dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (ExportSpec dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (IESpec dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (SubSpec dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (ModulePragma dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (FilePragma dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (ImportDecl dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (ImportSpec dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (ImportQualified dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (ImportSource dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (ImportSafe dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (TypeNamespace dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (ImportRenaming dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UModule dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UModuleHead dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UExportSpecs dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UExportSpec dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UIESpec dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (USubSpec dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UModulePragma dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UFilePragma dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UImportDecl dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UImportSpec dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UImportQualified dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UImportSource dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UImportSafe dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UTypeNamespace dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UImportRenaming dom stage)
 
 -- Declarations
-deriving instance (Domain dom, SourceInfo stage) => Generic (Decl dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (ClassBody dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (ClassElement dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (DeclHead dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (InstBody dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (InstBodyDecl dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (GadtConDecl dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (GadtConType dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (FieldWildcard dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (FunDeps dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (FunDep dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (ConDecl dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (FieldDecl dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (Deriving dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (InstanceRule dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (InstanceHead dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (TypeEqn dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (KindConstraint dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (TyVar dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (Type dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (Kind dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (Context dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (Assertion dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (Expr dom stage)
-deriving instance (Domain dom, SourceInfo stage, Generic (expr dom stage)) => Generic (Stmt' expr dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (CompStmt dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (ValueBind dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (Pattern dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (PatternField dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (Splice dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UDecl dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UClassBody dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UClassElement dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UDeclHead dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UInstBody dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UInstBodyDecl dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UGadtConDecl dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UGadtConType dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UFieldWildcard dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UFunDeps dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UFunDep dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UConDecl dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UFieldDecl dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UDeriving dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UInstanceRule dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UInstanceHead dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UTypeEqn dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UKindConstraint dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UTyVar dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UType dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UKind dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UContext dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UAssertion dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UExpr dom stage)
+deriving instance (Domain dom, SourceInfo stage, Generic (expr dom stage)) => Generic (UStmt' expr dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UCompStmt dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UValueBind dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UPattern dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UPatternField dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (USplice dom stage)
 deriving instance (Domain dom, SourceInfo stage) => Generic (QQString dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (Match dom stage)
-deriving instance (Domain dom, SourceInfo stage, Generic (expr dom stage)) => Generic (Alt' expr dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (Rhs dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (GuardedRhs dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (FieldUpdate dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (Bracket dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (TopLevelPragma dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (Rule dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (AnnotationSubject dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (MinimalFormula dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (ExprPragma dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (SourceRange dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UMatch dom stage)
+deriving instance (Domain dom, SourceInfo stage, Generic (expr dom stage)) => Generic (UAlt' expr dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (URhs dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UGuardedRhs dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UFieldUpdate dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UBracket dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UTopLevelPragma dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (URule dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UAnnotationSubject dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UMinimalFormula dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UExprPragma dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (USourceRange dom stage)
 deriving instance (Domain dom, SourceInfo stage) => Generic (Number dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (QuasiQuote dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (RhsGuard dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (LocalBind dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (LocalBinds dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (FixitySignature dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (TypeSignature dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (ListCompBody dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (TupSecElem dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (TypeFamily dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (TypeFamilySpec dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (InjectivityAnn dom stage)
-deriving instance (Domain dom, SourceInfo stage, Generic (expr dom stage)) => Generic (CaseRhs' expr dom stage)
-deriving instance (Domain dom, SourceInfo stage, Generic (expr dom stage)) => Generic (GuardedCaseRhs' expr dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (PatternSynonym dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (PatSynRhs dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (PatSynLhs dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (PatSynWhere dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (PatternTypeSignature dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (Role dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (Cmd dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (LanguageExtension dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (MatchLhs dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UQuasiQuote dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (URhsGuard dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (ULocalBind dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (ULocalBinds dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UFixitySignature dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UTypeSignature dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UListCompBody dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UTupSecElem dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UTypeFamily dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UTypeFamilySpec dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UInjectivityAnn dom stage)
+deriving instance (Domain dom, SourceInfo stage, Generic (expr dom stage)) => Generic (UCaseRhs' expr dom stage)
+deriving instance (Domain dom, SourceInfo stage, Generic (expr dom stage)) => Generic (UGuardedCaseRhs' expr dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UPatternSynonym dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UPatSynRhs dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UPatSynLhs dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UPatSynWhere dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UPatternTypeSignature dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (URole dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UCmd dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (ULanguageExtension dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UMatchLhs dom stage)
 
 
--- Literal
-deriving instance (Domain dom, SourceInfo stage) => Generic (Literal dom stage)
-deriving instance (Domain dom, SourceInfo stage, Generic (k dom stage)) => Generic (Promoted k dom stage)
+-- ULiteral
+deriving instance (Domain dom, SourceInfo stage) => Generic (ULiteral dom stage)
+deriving instance (Domain dom, SourceInfo stage, Generic (k dom stage)) => Generic (UPromoted k dom stage)
 
 -- Base
-deriving instance (Domain dom, SourceInfo stage) => Generic (Operator dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (Name dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (QualifiedName dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (ModuleName dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (UnqualName dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (StringNode dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (DataOrNewtypeKeyword dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (DoKind dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UOperator dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UName dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UQualifiedName dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UModuleName dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UNamePart dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UStringNode dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UDataOrNewtypeKeyword dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UDoKind dom stage)
 deriving instance (Domain dom, SourceInfo stage) => Generic (TypeKeyword dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (OverlapPragma dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (CallConv dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (ArrowAppl dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (Safety dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (ConlikeAnnot dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UOverlapPragma dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UCallConv dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UArrowAppl dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (USafety dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UConlikeAnnot dom stage)
 deriving instance (Domain dom, SourceInfo stage) => Generic (Assoc dom stage)
 deriving instance (Domain dom, SourceInfo stage) => Generic (Precedence dom stage)
 deriving instance (Domain dom, SourceInfo stage) => Generic (LineNumber dom stage)
-deriving instance (Domain dom, SourceInfo stage) => Generic (PhaseControl dom stage)
+deriving instance (Domain dom, SourceInfo stage) => Generic (UPhaseControl dom stage)
 deriving instance (Domain dom, SourceInfo stage) => Generic (PhaseNumber dom stage)
 deriving instance (Domain dom, SourceInfo stage) => Generic (PhaseInvert dom stage)
Language/Haskell/Tools/AST/Instances/SemanticTraversal.hs view
@@ -6,127 +6,127 @@ import Language.Haskell.Tools.AST.TH.SemanticTraversal
 import Control.Applicative
 
-import Language.Haskell.Tools.AST.Modules
-import Language.Haskell.Tools.AST.TH
-import Language.Haskell.Tools.AST.Decls
-import Language.Haskell.Tools.AST.Binds
-import Language.Haskell.Tools.AST.Exprs
-import Language.Haskell.Tools.AST.Stmts
-import Language.Haskell.Tools.AST.Patterns
-import Language.Haskell.Tools.AST.Types
-import Language.Haskell.Tools.AST.Kinds
-import Language.Haskell.Tools.AST.Literals
-import Language.Haskell.Tools.AST.Base
+import Language.Haskell.Tools.AST.Representation.Modules
+import Language.Haskell.Tools.AST.Representation.TH
+import Language.Haskell.Tools.AST.Representation.Decls
+import Language.Haskell.Tools.AST.Representation.Binds
+import Language.Haskell.Tools.AST.Representation.Exprs
+import Language.Haskell.Tools.AST.Representation.Stmts
+import Language.Haskell.Tools.AST.Representation.Patterns
+import Language.Haskell.Tools.AST.Representation.Types
+import Language.Haskell.Tools.AST.Representation.Kinds
+import Language.Haskell.Tools.AST.Representation.Literals
+import Language.Haskell.Tools.AST.Representation.Names
 import Language.Haskell.Tools.AST.Ann
 
 
 -- Modules
-deriveSemanticTraversal ''Module
-deriveSemanticTraversal ''ModuleHead
-deriveSemanticTraversal ''ExportSpecList
-deriveSemanticTraversal ''ExportSpec
-deriveSemanticTraversal ''IESpec
-deriveSemanticTraversal ''SubSpec
-deriveSemanticTraversal ''ModulePragma
-deriveSemanticTraversal ''FilePragma
-deriveSemanticTraversal ''ImportDecl
-deriveSemanticTraversal ''ImportSpec
-deriveSemanticTraversal ''ImportQualified
-deriveSemanticTraversal ''ImportSource
-deriveSemanticTraversal ''ImportSafe
-deriveSemanticTraversal ''TypeNamespace
-deriveSemanticTraversal ''ImportRenaming
+deriveSemanticTraversal ''UModule
+deriveSemanticTraversal ''UModuleHead
+deriveSemanticTraversal ''UExportSpecs
+deriveSemanticTraversal ''UExportSpec
+deriveSemanticTraversal ''UIESpec
+deriveSemanticTraversal ''USubSpec
+deriveSemanticTraversal ''UModulePragma
+deriveSemanticTraversal ''UFilePragma
+deriveSemanticTraversal ''UImportDecl
+deriveSemanticTraversal ''UImportSpec
+deriveSemanticTraversal ''UImportQualified
+deriveSemanticTraversal ''UImportSource
+deriveSemanticTraversal ''UImportSafe
+deriveSemanticTraversal ''UTypeNamespace
+deriveSemanticTraversal ''UImportRenaming
 
 -- Declarations
-deriveSemanticTraversal ''Decl
-deriveSemanticTraversal ''ClassBody
-deriveSemanticTraversal ''ClassElement
-deriveSemanticTraversal ''DeclHead
-deriveSemanticTraversal ''InstBody
-deriveSemanticTraversal ''InstBodyDecl
-deriveSemanticTraversal ''GadtConDecl
-deriveSemanticTraversal ''GadtConType
-deriveSemanticTraversal ''FieldWildcard
-deriveSemanticTraversal ''FunDeps
-deriveSemanticTraversal ''FunDep
-deriveSemanticTraversal ''ConDecl
-deriveSemanticTraversal ''FieldDecl
-deriveSemanticTraversal ''Deriving
-deriveSemanticTraversal ''InstanceRule
-deriveSemanticTraversal ''InstanceHead
-deriveSemanticTraversal ''TypeEqn
-deriveSemanticTraversal ''KindConstraint
-deriveSemanticTraversal ''TyVar
-deriveSemanticTraversal ''Type
-deriveSemanticTraversal ''Kind
-deriveSemanticTraversal ''Context
-deriveSemanticTraversal ''Assertion
-deriveSemanticTraversal ''Expr
-deriveSemanticTraversal ''CompStmt
-deriveSemanticTraversal ''ValueBind
-deriveSemanticTraversal ''Pattern
-deriveSemanticTraversal ''PatternField
-deriveSemanticTraversal ''Splice
+deriveSemanticTraversal ''UDecl
+deriveSemanticTraversal ''UClassBody
+deriveSemanticTraversal ''UClassElement
+deriveSemanticTraversal ''UDeclHead
+deriveSemanticTraversal ''UInstBody
+deriveSemanticTraversal ''UInstBodyDecl
+deriveSemanticTraversal ''UGadtConDecl
+deriveSemanticTraversal ''UGadtConType
+deriveSemanticTraversal ''UFieldWildcard
+deriveSemanticTraversal ''UFunDeps
+deriveSemanticTraversal ''UFunDep
+deriveSemanticTraversal ''UConDecl
+deriveSemanticTraversal ''UFieldDecl
+deriveSemanticTraversal ''UDeriving
+deriveSemanticTraversal ''UInstanceRule
+deriveSemanticTraversal ''UInstanceHead
+deriveSemanticTraversal ''UTypeEqn
+deriveSemanticTraversal ''UKindConstraint
+deriveSemanticTraversal ''UTyVar
+deriveSemanticTraversal ''UType
+deriveSemanticTraversal ''UKind
+deriveSemanticTraversal ''UContext
+deriveSemanticTraversal ''UAssertion
+deriveSemanticTraversal ''UExpr
+deriveSemanticTraversal ''UCompStmt
+deriveSemanticTraversal ''UValueBind
+deriveSemanticTraversal ''UPattern
+deriveSemanticTraversal ''UPatternField
+deriveSemanticTraversal ''USplice
 deriveSemanticTraversal ''QQString
-deriveSemanticTraversal ''Match
-deriveSemanticTraversal ''Rhs
-deriveSemanticTraversal ''GuardedRhs
-deriveSemanticTraversal ''FieldUpdate
-deriveSemanticTraversal ''Bracket
-deriveSemanticTraversal ''TopLevelPragma
-deriveSemanticTraversal ''Rule
-deriveSemanticTraversal ''AnnotationSubject
-deriveSemanticTraversal ''MinimalFormula
-deriveSemanticTraversal ''ExprPragma
-deriveSemanticTraversal ''SourceRange
+deriveSemanticTraversal ''UMatch
+deriveSemanticTraversal ''URhs
+deriveSemanticTraversal ''UGuardedRhs
+deriveSemanticTraversal ''UFieldUpdate
+deriveSemanticTraversal ''UBracket
+deriveSemanticTraversal ''UTopLevelPragma
+deriveSemanticTraversal ''URule
+deriveSemanticTraversal ''UAnnotationSubject
+deriveSemanticTraversal ''UMinimalFormula
+deriveSemanticTraversal ''UExprPragma
+deriveSemanticTraversal ''USourceRange
 deriveSemanticTraversal ''Number
-deriveSemanticTraversal ''QuasiQuote
-deriveSemanticTraversal ''RhsGuard
-deriveSemanticTraversal ''LocalBind
-deriveSemanticTraversal ''LocalBinds
-deriveSemanticTraversal ''FixitySignature
-deriveSemanticTraversal ''TypeSignature
-deriveSemanticTraversal ''ListCompBody
-deriveSemanticTraversal ''TupSecElem
-deriveSemanticTraversal ''TypeFamily
-deriveSemanticTraversal ''TypeFamilySpec
-deriveSemanticTraversal ''InjectivityAnn
-deriveSemanticTraversal ''PatternSynonym
-deriveSemanticTraversal ''PatSynRhs
-deriveSemanticTraversal ''PatSynLhs
-deriveSemanticTraversal ''PatSynWhere
-deriveSemanticTraversal ''PatternTypeSignature
-deriveSemanticTraversal ''Role
-deriveSemanticTraversal ''Cmd
-deriveSemanticTraversal ''LanguageExtension
-deriveSemanticTraversal ''MatchLhs
-deriveSemanticTraversal ''Stmt'
-deriveSemanticTraversal ''Alt'
-deriveSemanticTraversal ''CaseRhs'
-deriveSemanticTraversal ''GuardedCaseRhs'
+deriveSemanticTraversal ''UQuasiQuote
+deriveSemanticTraversal ''URhsGuard
+deriveSemanticTraversal ''ULocalBind
+deriveSemanticTraversal ''ULocalBinds
+deriveSemanticTraversal ''UFixitySignature
+deriveSemanticTraversal ''UTypeSignature
+deriveSemanticTraversal ''UListCompBody
+deriveSemanticTraversal ''UTupSecElem
+deriveSemanticTraversal ''UTypeFamily
+deriveSemanticTraversal ''UTypeFamilySpec
+deriveSemanticTraversal ''UInjectivityAnn
+deriveSemanticTraversal ''UPatternSynonym
+deriveSemanticTraversal ''UPatSynRhs
+deriveSemanticTraversal ''UPatSynLhs
+deriveSemanticTraversal ''UPatSynWhere
+deriveSemanticTraversal ''UPatternTypeSignature
+deriveSemanticTraversal ''URole
+deriveSemanticTraversal ''UCmd
+deriveSemanticTraversal ''ULanguageExtension
+deriveSemanticTraversal ''UMatchLhs
+deriveSemanticTraversal ''UStmt'
+deriveSemanticTraversal ''UAlt'
+deriveSemanticTraversal ''UCaseRhs'
+deriveSemanticTraversal ''UGuardedCaseRhs'
 
--- Literal
-deriveSemanticTraversal ''Literal
-deriveSemanticTraversal ''Promoted
+-- ULiteral
+deriveSemanticTraversal ''ULiteral
+deriveSemanticTraversal ''UPromoted
 
 -- Base
-deriveSemanticTraversal ''Operator
-deriveSemanticTraversal ''Name
-deriveSemanticTraversal ''QualifiedName
-deriveSemanticTraversal ''ModuleName
-deriveSemanticTraversal ''UnqualName
-deriveSemanticTraversal ''StringNode
-deriveSemanticTraversal ''DataOrNewtypeKeyword
-deriveSemanticTraversal ''DoKind
+deriveSemanticTraversal ''UOperator
+deriveSemanticTraversal ''UName
+deriveSemanticTraversal ''UQualifiedName
+deriveSemanticTraversal ''UModuleName
+deriveSemanticTraversal ''UNamePart
+deriveSemanticTraversal ''UStringNode
+deriveSemanticTraversal ''UDataOrNewtypeKeyword
+deriveSemanticTraversal ''UDoKind
 deriveSemanticTraversal ''TypeKeyword
-deriveSemanticTraversal ''OverlapPragma
-deriveSemanticTraversal ''CallConv
-deriveSemanticTraversal ''ArrowAppl
-deriveSemanticTraversal ''Safety
-deriveSemanticTraversal ''ConlikeAnnot
+deriveSemanticTraversal ''UOverlapPragma
+deriveSemanticTraversal ''UCallConv
+deriveSemanticTraversal ''UArrowAppl
+deriveSemanticTraversal ''USafety
+deriveSemanticTraversal ''UConlikeAnnot
 deriveSemanticTraversal ''Assoc
 deriveSemanticTraversal ''Precedence
 deriveSemanticTraversal ''LineNumber
-deriveSemanticTraversal ''PhaseControl
+deriveSemanticTraversal ''UPhaseControl
 deriveSemanticTraversal ''PhaseNumber
 deriveSemanticTraversal ''PhaseInvert
Language/Haskell/Tools/AST/Instances/Show.hs view
@@ -2,137 +2,137 @@ {-# LANGUAGE FlexibleContexts, StandaloneDeriving #-}
 module Language.Haskell.Tools.AST.Instances.Show where
 
-import Language.Haskell.Tools.AST.Modules
-import Language.Haskell.Tools.AST.TH
-import Language.Haskell.Tools.AST.Decls
-import Language.Haskell.Tools.AST.Binds
-import Language.Haskell.Tools.AST.Exprs
-import Language.Haskell.Tools.AST.Stmts
-import Language.Haskell.Tools.AST.Patterns
-import Language.Haskell.Tools.AST.Types
-import Language.Haskell.Tools.AST.Kinds
-import Language.Haskell.Tools.AST.Literals
-import Language.Haskell.Tools.AST.Base
+import Language.Haskell.Tools.AST.Representation.Modules
+import Language.Haskell.Tools.AST.Representation.TH
+import Language.Haskell.Tools.AST.Representation.Decls
+import Language.Haskell.Tools.AST.Representation.Binds
+import Language.Haskell.Tools.AST.Representation.Exprs
+import Language.Haskell.Tools.AST.Representation.Stmts
+import Language.Haskell.Tools.AST.Representation.Patterns
+import Language.Haskell.Tools.AST.Representation.Types
+import Language.Haskell.Tools.AST.Representation.Kinds
+import Language.Haskell.Tools.AST.Representation.Literals
+import Language.Haskell.Tools.AST.Representation.Names
 import Language.Haskell.Tools.AST.Ann
 
 -- Annotations
 instance (Show (e dom stage)) => Show (Ann e dom stage) where
   show (Ann _ e) = show e
 
-instance (Show (e dom stage)) => Show (AnnMaybe e dom stage) where
-  show (AnnMaybe _ e) = show e
+instance (Show (e dom stage)) => Show (AnnMaybeG e dom stage) where
+  show (AnnMaybeG _ e) = show e
   
-instance (Show (e dom stage)) => Show (AnnList e dom stage) where
-  show (AnnList _ e) = show e
+instance (Show (e dom stage)) => Show (AnnListG e dom stage) where
+  show (AnnListG _ e) = show e
 
 -- Modules
-deriving instance Show (Module dom stage)
-deriving instance Show (ModuleHead dom stage)
-deriving instance Show (ExportSpecList dom stage)
-deriving instance Show (ExportSpec dom stage)
-deriving instance Show (IESpec dom stage)
-deriving instance Show (SubSpec dom stage)
-deriving instance Show (ModulePragma dom stage)
-deriving instance Show (FilePragma dom stage)
-deriving instance Show (ImportDecl dom stage)
-deriving instance Show (ImportSpec dom stage)
-deriving instance Show (ImportQualified dom stage)
-deriving instance Show (ImportSource dom stage)
-deriving instance Show (ImportSafe dom stage)
-deriving instance Show (TypeNamespace dom stage)
-deriving instance Show (ImportRenaming dom stage)
+deriving instance Show (UModule dom stage)
+deriving instance Show (UModuleHead dom stage)
+deriving instance Show (UExportSpecs dom stage)
+deriving instance Show (UExportSpec dom stage)
+deriving instance Show (UIESpec dom stage)
+deriving instance Show (USubSpec dom stage)
+deriving instance Show (UModulePragma dom stage)
+deriving instance Show (UFilePragma dom stage)
+deriving instance Show (UImportDecl dom stage)
+deriving instance Show (UImportSpec dom stage)
+deriving instance Show (UImportQualified dom stage)
+deriving instance Show (UImportSource dom stage)
+deriving instance Show (UImportSafe dom stage)
+deriving instance Show (UTypeNamespace dom stage)
+deriving instance Show (UImportRenaming dom stage)
 
 -- Declarations
-deriving instance Show (Decl dom stage)
-deriving instance Show (ClassBody dom stage)
-deriving instance Show (ClassElement dom stage)
-deriving instance Show (DeclHead dom stage)
-deriving instance Show (InstBody dom stage)
-deriving instance Show (InstBodyDecl dom stage)
-deriving instance Show (GadtConDecl dom stage)
-deriving instance Show (GadtConType dom stage)
-deriving instance Show (FieldWildcard dom stage)
-deriving instance Show (FunDeps dom stage)
-deriving instance Show (FunDep dom stage)
-deriving instance Show (ConDecl dom stage)
-deriving instance Show (FieldDecl dom stage)
-deriving instance Show (Deriving dom stage)
-deriving instance Show (InstanceRule dom stage)
-deriving instance Show (InstanceHead dom stage)
-deriving instance Show (TypeEqn dom stage)
-deriving instance Show (KindConstraint dom stage)
-deriving instance Show (TyVar dom stage)
-deriving instance Show (Type dom stage)
-deriving instance Show (Kind dom stage)
-deriving instance Show (Context dom stage)
-deriving instance Show (Assertion dom stage)
-deriving instance Show (Expr dom stage)
-deriving instance Show (expr dom stage) => Show (Stmt' expr dom stage)
-deriving instance Show (CompStmt dom stage)
-deriving instance Show (ValueBind dom stage)
-deriving instance Show (Pattern dom stage)
-deriving instance Show (PatternField dom stage)
-deriving instance Show (Splice dom stage)
+deriving instance Show (UDecl dom stage)
+deriving instance Show (UClassBody dom stage)
+deriving instance Show (UClassElement dom stage)
+deriving instance Show (UDeclHead dom stage)
+deriving instance Show (UInstBody dom stage)
+deriving instance Show (UInstBodyDecl dom stage)
+deriving instance Show (UGadtConDecl dom stage)
+deriving instance Show (UGadtConType dom stage)
+deriving instance Show (UFieldWildcard dom stage)
+deriving instance Show (UFunDeps dom stage)
+deriving instance Show (UFunDep dom stage)
+deriving instance Show (UConDecl dom stage)
+deriving instance Show (UFieldDecl dom stage)
+deriving instance Show (UDeriving dom stage)
+deriving instance Show (UInstanceRule dom stage)
+deriving instance Show (UInstanceHead dom stage)
+deriving instance Show (UTypeEqn dom stage)
+deriving instance Show (UKindConstraint dom stage)
+deriving instance Show (UTyVar dom stage)
+deriving instance Show (UType dom stage)
+deriving instance Show (UKind dom stage)
+deriving instance Show (UContext dom stage)
+deriving instance Show (UAssertion dom stage)
+deriving instance Show (UExpr dom stage)
+deriving instance Show (expr dom stage) => Show (UStmt' expr dom stage)
+deriving instance Show (UCompStmt dom stage)
+deriving instance Show (UValueBind dom stage)
+deriving instance Show (UPattern dom stage)
+deriving instance Show (UPatternField dom stage)
+deriving instance Show (USplice dom stage)
 deriving instance Show (QQString dom stage)
-deriving instance Show (Match dom stage)
-deriving instance Show (expr dom stage) => Show (Alt' expr dom stage)
-deriving instance Show (Rhs dom stage)
-deriving instance Show (GuardedRhs dom stage)
-deriving instance Show (FieldUpdate dom stage)
-deriving instance Show (Bracket dom stage)
-deriving instance Show (TopLevelPragma dom stage)
-deriving instance Show (Rule dom stage)
-deriving instance Show (AnnotationSubject dom stage)
-deriving instance Show (MinimalFormula dom stage)
-deriving instance Show (ExprPragma dom stage)
-deriving instance Show (SourceRange dom stage)
+deriving instance Show (UMatch dom stage)
+deriving instance Show (expr dom stage) => Show (UAlt' expr dom stage)
+deriving instance Show (URhs dom stage)
+deriving instance Show (UGuardedRhs dom stage)
+deriving instance Show (UFieldUpdate dom stage)
+deriving instance Show (UBracket dom stage)
+deriving instance Show (UTopLevelPragma dom stage)
+deriving instance Show (URule dom stage)
+deriving instance Show (UAnnotationSubject dom stage)
+deriving instance Show (UMinimalFormula dom stage)
+deriving instance Show (UExprPragma dom stage)
+deriving instance Show (USourceRange dom stage)
 deriving instance Show (Number dom stage)
-deriving instance Show (QuasiQuote dom stage)
-deriving instance Show (RhsGuard dom stage)
-deriving instance Show (LocalBind dom stage)
-deriving instance Show (LocalBinds dom stage)
-deriving instance Show (FixitySignature dom stage)
-deriving instance Show (TypeSignature dom stage)
-deriving instance Show (ListCompBody dom stage)
-deriving instance Show (TupSecElem dom stage)
-deriving instance Show (TypeFamily dom stage)
-deriving instance Show (TypeFamilySpec dom stage)
-deriving instance Show (InjectivityAnn dom stage)
-deriving instance Show (expr dom stage) => Show (CaseRhs' expr dom stage)
-deriving instance Show (expr dom stage) => Show (GuardedCaseRhs' expr dom stage)
-deriving instance Show (PatternSynonym dom stage)
-deriving instance Show (PatSynRhs dom stage)
-deriving instance Show (PatSynLhs dom stage)
-deriving instance Show (PatSynWhere dom stage)
-deriving instance Show (PatternTypeSignature dom stage)
-deriving instance Show (Role dom stage)
-deriving instance Show (Cmd dom stage)
-deriving instance Show (LanguageExtension dom stage)
-deriving instance Show (MatchLhs dom stage)
+deriving instance Show (UQuasiQuote dom stage)
+deriving instance Show (URhsGuard dom stage)
+deriving instance Show (ULocalBind dom stage)
+deriving instance Show (ULocalBinds dom stage)
+deriving instance Show (UFixitySignature dom stage)
+deriving instance Show (UTypeSignature dom stage)
+deriving instance Show (UListCompBody dom stage)
+deriving instance Show (UTupSecElem dom stage)
+deriving instance Show (UTypeFamily dom stage)
+deriving instance Show (UTypeFamilySpec dom stage)
+deriving instance Show (UInjectivityAnn dom stage)
+deriving instance Show (expr dom stage) => Show (UCaseRhs' expr dom stage)
+deriving instance Show (expr dom stage) => Show (UGuardedCaseRhs' expr dom stage)
+deriving instance Show (UPatternSynonym dom stage)
+deriving instance Show (UPatSynRhs dom stage)
+deriving instance Show (UPatSynLhs dom stage)
+deriving instance Show (UPatSynWhere dom stage)
+deriving instance Show (UPatternTypeSignature dom stage)
+deriving instance Show (URole dom stage)
+deriving instance Show (UCmd dom stage)
+deriving instance Show (ULanguageExtension dom stage)
+deriving instance Show (UMatchLhs dom stage)
 
 
--- Literal
-deriving instance Show (Literal dom stage)
-deriving instance Show (k dom stage) => Show (Promoted k dom stage)
+-- ULiteral
+deriving instance Show (ULiteral dom stage)
+deriving instance Show (k dom stage) => Show (UPromoted k dom stage)
 
 -- Base
-deriving instance Show (Operator dom stage)
-deriving instance Show (Name dom stage)
-deriving instance Show (QualifiedName dom stage)
-deriving instance Show (ModuleName dom stage)
-deriving instance Show (UnqualName dom stage)
-deriving instance Show (StringNode dom stage)
-deriving instance Show (DataOrNewtypeKeyword dom stage)
-deriving instance Show (DoKind dom stage)
+deriving instance Show (UOperator dom stage)
+deriving instance Show (UName dom stage)
+deriving instance Show (UQualifiedName dom stage)
+deriving instance Show (UModuleName dom stage)
+deriving instance Show (UNamePart dom stage)
+deriving instance Show (UStringNode dom stage)
+deriving instance Show (UDataOrNewtypeKeyword dom stage)
+deriving instance Show (UDoKind dom stage)
 deriving instance Show (TypeKeyword dom stage)
-deriving instance Show (OverlapPragma dom stage)
-deriving instance Show (CallConv dom stage)
-deriving instance Show (ArrowAppl dom stage)
-deriving instance Show (Safety dom stage)
-deriving instance Show (ConlikeAnnot dom stage)
+deriving instance Show (UOverlapPragma dom stage)
+deriving instance Show (UCallConv dom stage)
+deriving instance Show (UArrowAppl dom stage)
+deriving instance Show (USafety dom stage)
+deriving instance Show (UConlikeAnnot dom stage)
 deriving instance Show (Assoc dom stage)
 deriving instance Show (Precedence dom stage)
 deriving instance Show (LineNumber dom stage)
-deriving instance Show (PhaseControl dom stage)
+deriving instance Show (UPhaseControl dom stage)
 deriving instance Show (PhaseNumber dom stage)
 deriving instance Show (PhaseInvert dom stage)
Language/Haskell/Tools/AST/Instances/SourceInfoTraversal.hs view
@@ -6,127 +6,127 @@ import Language.Haskell.Tools.AST.TH.SourceInfoTraversal
 import Control.Applicative
 
-import Language.Haskell.Tools.AST.Modules
-import Language.Haskell.Tools.AST.TH
-import Language.Haskell.Tools.AST.Decls
-import Language.Haskell.Tools.AST.Binds
-import Language.Haskell.Tools.AST.Exprs
-import Language.Haskell.Tools.AST.Stmts
-import Language.Haskell.Tools.AST.Patterns
-import Language.Haskell.Tools.AST.Types
-import Language.Haskell.Tools.AST.Kinds
-import Language.Haskell.Tools.AST.Literals
-import Language.Haskell.Tools.AST.Base
+import Language.Haskell.Tools.AST.Representation.Modules
+import Language.Haskell.Tools.AST.Representation.TH
+import Language.Haskell.Tools.AST.Representation.Decls
+import Language.Haskell.Tools.AST.Representation.Binds
+import Language.Haskell.Tools.AST.Representation.Exprs
+import Language.Haskell.Tools.AST.Representation.Stmts
+import Language.Haskell.Tools.AST.Representation.Patterns
+import Language.Haskell.Tools.AST.Representation.Types
+import Language.Haskell.Tools.AST.Representation.Kinds
+import Language.Haskell.Tools.AST.Representation.Literals
+import Language.Haskell.Tools.AST.Representation.Names
 import Language.Haskell.Tools.AST.Ann
 
 
 -- Modules
-deriveSourceInfoTraversal ''Module
-deriveSourceInfoTraversal ''ModuleHead
-deriveSourceInfoTraversal ''ExportSpecList
-deriveSourceInfoTraversal ''ExportSpec
-deriveSourceInfoTraversal ''IESpec
-deriveSourceInfoTraversal ''SubSpec
-deriveSourceInfoTraversal ''ModulePragma
-deriveSourceInfoTraversal ''FilePragma
-deriveSourceInfoTraversal ''ImportDecl
-deriveSourceInfoTraversal ''ImportSpec
-deriveSourceInfoTraversal ''ImportQualified
-deriveSourceInfoTraversal ''ImportSource
-deriveSourceInfoTraversal ''ImportSafe
-deriveSourceInfoTraversal ''TypeNamespace
-deriveSourceInfoTraversal ''ImportRenaming
+deriveSourceInfoTraversal ''UModule
+deriveSourceInfoTraversal ''UModuleHead
+deriveSourceInfoTraversal ''UExportSpecs
+deriveSourceInfoTraversal ''UExportSpec
+deriveSourceInfoTraversal ''UIESpec
+deriveSourceInfoTraversal ''USubSpec
+deriveSourceInfoTraversal ''UModulePragma
+deriveSourceInfoTraversal ''UFilePragma
+deriveSourceInfoTraversal ''UImportDecl
+deriveSourceInfoTraversal ''UImportSpec
+deriveSourceInfoTraversal ''UImportQualified
+deriveSourceInfoTraversal ''UImportSource
+deriveSourceInfoTraversal ''UImportSafe
+deriveSourceInfoTraversal ''UTypeNamespace
+deriveSourceInfoTraversal ''UImportRenaming
 
 -- Declarations
-deriveSourceInfoTraversal ''Decl
-deriveSourceInfoTraversal ''ClassBody
-deriveSourceInfoTraversal ''ClassElement
-deriveSourceInfoTraversal ''DeclHead
-deriveSourceInfoTraversal ''InstBody
-deriveSourceInfoTraversal ''InstBodyDecl
-deriveSourceInfoTraversal ''GadtConDecl
-deriveSourceInfoTraversal ''GadtConType
-deriveSourceInfoTraversal ''FieldWildcard
-deriveSourceInfoTraversal ''FunDeps
-deriveSourceInfoTraversal ''FunDep
-deriveSourceInfoTraversal ''ConDecl
-deriveSourceInfoTraversal ''FieldDecl
-deriveSourceInfoTraversal ''Deriving
-deriveSourceInfoTraversal ''InstanceRule
-deriveSourceInfoTraversal ''InstanceHead
-deriveSourceInfoTraversal ''TypeEqn
-deriveSourceInfoTraversal ''KindConstraint
-deriveSourceInfoTraversal ''TyVar
-deriveSourceInfoTraversal ''Type
-deriveSourceInfoTraversal ''Kind
-deriveSourceInfoTraversal ''Context
-deriveSourceInfoTraversal ''Assertion
-deriveSourceInfoTraversal ''Expr
-deriveSourceInfoTraversal ''CompStmt
-deriveSourceInfoTraversal ''ValueBind
-deriveSourceInfoTraversal ''Pattern
-deriveSourceInfoTraversal ''PatternField
-deriveSourceInfoTraversal ''Splice
+deriveSourceInfoTraversal ''UDecl
+deriveSourceInfoTraversal ''UClassBody
+deriveSourceInfoTraversal ''UClassElement
+deriveSourceInfoTraversal ''UDeclHead
+deriveSourceInfoTraversal ''UInstBody
+deriveSourceInfoTraversal ''UInstBodyDecl
+deriveSourceInfoTraversal ''UGadtConDecl
+deriveSourceInfoTraversal ''UGadtConType
+deriveSourceInfoTraversal ''UFieldWildcard
+deriveSourceInfoTraversal ''UFunDeps
+deriveSourceInfoTraversal ''UFunDep
+deriveSourceInfoTraversal ''UConDecl
+deriveSourceInfoTraversal ''UFieldDecl
+deriveSourceInfoTraversal ''UDeriving
+deriveSourceInfoTraversal ''UInstanceRule
+deriveSourceInfoTraversal ''UInstanceHead
+deriveSourceInfoTraversal ''UTypeEqn
+deriveSourceInfoTraversal ''UKindConstraint
+deriveSourceInfoTraversal ''UTyVar
+deriveSourceInfoTraversal ''UType
+deriveSourceInfoTraversal ''UKind
+deriveSourceInfoTraversal ''UContext
+deriveSourceInfoTraversal ''UAssertion
+deriveSourceInfoTraversal ''UExpr
+deriveSourceInfoTraversal ''UCompStmt
+deriveSourceInfoTraversal ''UValueBind
+deriveSourceInfoTraversal ''UPattern
+deriveSourceInfoTraversal ''UPatternField
+deriveSourceInfoTraversal ''USplice
 deriveSourceInfoTraversal ''QQString
-deriveSourceInfoTraversal ''Match
-deriveSourceInfoTraversal ''Rhs
-deriveSourceInfoTraversal ''GuardedRhs
-deriveSourceInfoTraversal ''FieldUpdate
-deriveSourceInfoTraversal ''Bracket
-deriveSourceInfoTraversal ''TopLevelPragma
-deriveSourceInfoTraversal ''Rule
-deriveSourceInfoTraversal ''AnnotationSubject
-deriveSourceInfoTraversal ''MinimalFormula
-deriveSourceInfoTraversal ''ExprPragma
-deriveSourceInfoTraversal ''SourceRange
+deriveSourceInfoTraversal ''UMatch
+deriveSourceInfoTraversal ''URhs
+deriveSourceInfoTraversal ''UGuardedRhs
+deriveSourceInfoTraversal ''UFieldUpdate
+deriveSourceInfoTraversal ''UBracket
+deriveSourceInfoTraversal ''UTopLevelPragma
+deriveSourceInfoTraversal ''URule
+deriveSourceInfoTraversal ''UAnnotationSubject
+deriveSourceInfoTraversal ''UMinimalFormula
+deriveSourceInfoTraversal ''UExprPragma
+deriveSourceInfoTraversal ''USourceRange
 deriveSourceInfoTraversal ''Number
-deriveSourceInfoTraversal ''QuasiQuote
-deriveSourceInfoTraversal ''RhsGuard
-deriveSourceInfoTraversal ''LocalBind
-deriveSourceInfoTraversal ''LocalBinds
-deriveSourceInfoTraversal ''FixitySignature
-deriveSourceInfoTraversal ''TypeSignature
-deriveSourceInfoTraversal ''ListCompBody
-deriveSourceInfoTraversal ''TupSecElem
-deriveSourceInfoTraversal ''TypeFamily
-deriveSourceInfoTraversal ''TypeFamilySpec
-deriveSourceInfoTraversal ''InjectivityAnn
-deriveSourceInfoTraversal ''PatternSynonym
-deriveSourceInfoTraversal ''PatSynRhs
-deriveSourceInfoTraversal ''PatSynLhs
-deriveSourceInfoTraversal ''PatSynWhere
-deriveSourceInfoTraversal ''PatternTypeSignature
-deriveSourceInfoTraversal ''Role
-deriveSourceInfoTraversal ''Cmd
-deriveSourceInfoTraversal ''LanguageExtension
-deriveSourceInfoTraversal ''MatchLhs
-deriveSourceInfoTraversal ''Stmt'
-deriveSourceInfoTraversal ''Alt'
-deriveSourceInfoTraversal ''CaseRhs'
-deriveSourceInfoTraversal ''GuardedCaseRhs'
+deriveSourceInfoTraversal ''UQuasiQuote
+deriveSourceInfoTraversal ''URhsGuard
+deriveSourceInfoTraversal ''ULocalBind
+deriveSourceInfoTraversal ''ULocalBinds
+deriveSourceInfoTraversal ''UFixitySignature
+deriveSourceInfoTraversal ''UTypeSignature
+deriveSourceInfoTraversal ''UListCompBody
+deriveSourceInfoTraversal ''UTupSecElem
+deriveSourceInfoTraversal ''UTypeFamily
+deriveSourceInfoTraversal ''UTypeFamilySpec
+deriveSourceInfoTraversal ''UInjectivityAnn
+deriveSourceInfoTraversal ''UPatternSynonym
+deriveSourceInfoTraversal ''UPatSynRhs
+deriveSourceInfoTraversal ''UPatSynLhs
+deriveSourceInfoTraversal ''UPatSynWhere
+deriveSourceInfoTraversal ''UPatternTypeSignature
+deriveSourceInfoTraversal ''URole
+deriveSourceInfoTraversal ''UCmd
+deriveSourceInfoTraversal ''ULanguageExtension
+deriveSourceInfoTraversal ''UMatchLhs
+deriveSourceInfoTraversal ''UStmt'
+deriveSourceInfoTraversal ''UAlt'
+deriveSourceInfoTraversal ''UCaseRhs'
+deriveSourceInfoTraversal ''UGuardedCaseRhs'
 
--- Literal
-deriveSourceInfoTraversal ''Literal
-deriveSourceInfoTraversal ''Promoted
+-- ULiteral
+deriveSourceInfoTraversal ''ULiteral
+deriveSourceInfoTraversal ''UPromoted
 
 -- Base
-deriveSourceInfoTraversal ''Operator
-deriveSourceInfoTraversal ''Name
-deriveSourceInfoTraversal ''QualifiedName
-deriveSourceInfoTraversal ''ModuleName
-deriveSourceInfoTraversal ''UnqualName
-deriveSourceInfoTraversal ''StringNode
-deriveSourceInfoTraversal ''DataOrNewtypeKeyword
-deriveSourceInfoTraversal ''DoKind
+deriveSourceInfoTraversal ''UOperator
+deriveSourceInfoTraversal ''UName
+deriveSourceInfoTraversal ''UQualifiedName
+deriveSourceInfoTraversal ''UModuleName
+deriveSourceInfoTraversal ''UNamePart
+deriveSourceInfoTraversal ''UStringNode
+deriveSourceInfoTraversal ''UDataOrNewtypeKeyword
+deriveSourceInfoTraversal ''UDoKind
 deriveSourceInfoTraversal ''TypeKeyword
-deriveSourceInfoTraversal ''OverlapPragma
-deriveSourceInfoTraversal ''CallConv
-deriveSourceInfoTraversal ''ArrowAppl
-deriveSourceInfoTraversal ''Safety
-deriveSourceInfoTraversal ''ConlikeAnnot
+deriveSourceInfoTraversal ''UOverlapPragma
+deriveSourceInfoTraversal ''UCallConv
+deriveSourceInfoTraversal ''UArrowAppl
+deriveSourceInfoTraversal ''USafety
+deriveSourceInfoTraversal ''UConlikeAnnot
 deriveSourceInfoTraversal ''Assoc
 deriveSourceInfoTraversal ''Precedence
 deriveSourceInfoTraversal ''LineNumber
-deriveSourceInfoTraversal ''PhaseControl
+deriveSourceInfoTraversal ''UPhaseControl
 deriveSourceInfoTraversal ''PhaseNumber
 deriveSourceInfoTraversal ''PhaseInvert
− Language/Haskell/Tools/AST/Kinds.hs
@@ -1,38 +0,0 @@--- | Representation of Haskell Kinds
-module Language.Haskell.Tools.AST.Kinds where
-
-import Language.Haskell.Tools.AST.Literals
-import Language.Haskell.Tools.AST.Ann
-import Language.Haskell.Tools.AST.Base
-
--- | Kind constraint (@ :: * -> * @)
-data KindConstraint dom stage
-  = KindConstraint { _kindConstr :: Ann Kind dom stage 
-                   }
-                 
--- | Haskell kinds
-data Kind dom stage
-  = KindStar  -- ^ @*@, the kind of types
-  | KindUnbox -- ^ @#@, the kind of unboxed types
-  | KindFn       { _kindLeft :: Ann Kind dom stage
-                 , _kindRight :: Ann Kind dom stage
-                 } -- ^ @->@, the kind of type constructor
-  | KindParen    { _kindParen :: Ann Kind dom stage
-                 } -- ^ A parenthesised kind
-  | KindVar      { _kindVar :: Ann Name dom stage
-                 } -- ^ kind variable (using @PolyKinds@ extension)
-  | KindApp      { _kindAppFun :: Ann Kind dom stage
-                 , _kindAppArg :: Ann Kind dom stage 
-                 } -- ^ Kind application (@ k1 k2 @)
-  | KindList     { _kindElem :: Ann Kind dom stage
-                 } -- ^ A list kind (@ [k] @)
-  | KindPromoted { _kindPromoted :: Ann (Promoted Kind) dom stage
-                 } -- ^ A promoted kind (@ '(k1,k2,k3) @)
-
-data Promoted t dom stage
-  = PromotedInt    { _promotedIntValue :: Integer }
-  | PromotedString { _promotedStringValue :: String }
-  | PromotedCon    { _promotedConName :: Ann Name dom stage }
-  | PromotedList   { _promotedElements :: AnnList t dom stage }
-  | PromotedTuple  { _promotedElements :: AnnList t dom stage }
-  | PromotedUnit
− Language/Haskell/Tools/AST/Literals.hs
@@ -1,29 +0,0 @@--- | Representation of Haskell literals
-module Language.Haskell.Tools.AST.Literals where
-
-import Language.Haskell.Tools.AST.Ann
-import Language.Haskell.Tools.AST.Base
-
--- | Haskell literals
-data Literal dom stage
-  = CharLit { _charLitValue :: Char 
-            } -- ^ Character literal: @'c'@
-  | StringLit { _stringLitValue :: String 
-              } -- ^ String literal: @"abc"@
-  | IntLit { _intLitValue :: Integer 
-           } -- ^ Integer literal: @12@
-  | FracLit { _fracLitValue :: Rational 
-            } -- ^ Fractional literal: @3.14@
-  | PrimIntLit { _intLitValue :: Integer 
-               } -- ^ Primitive integer literal (of type @Int#@): @32#@
-  | PrimWordLit { _intLitValue :: Integer 
-                } -- ^ Primitive word literal (of type @Word#@): @32##@
-  | PrimFloatLit { _floatLitValue :: Rational 
-                 } -- ^ Primitive float literal (of type @Float#@): @3.14#@
-  | PrimDoubleLit { _floatLitValue :: Rational 
-                  } -- ^ Primitive double literal (of type @Double#@): @3.14##@
-  | PrimCharLit { _charLitValue :: Char 
-                } -- ^ Primitive character literal (of type @Char#@): @'c'#@
-  | PrimStringLit { _stringLitValue :: String 
-                  } -- ^ Prmitive string literal (of type @Addr#@): @"xxx"#@
-               
+ Language/Haskell/Tools/AST/MakeASTReferences.hs view
@@ -0,0 +1,27 @@+{-# LANGUAGE LambdaCase, TemplateHaskellQuotes #-}
+-- | Contains a transformation to alter the references generated by the template haskell 
+-- function @makeReferences@.
+module Language.Haskell.Tools.AST.MakeASTReferences where
+
+import Control.Monad
+import Control.Reference ((&))
+import Language.Haskell.Tools.AST.Ann (Ann, element)
+import Language.Haskell.TH
+
+import Debug.Trace
+
+-- | Change the generated references to have the context of an annotated element.
+-- Modifies the types according to the changes. This trasformation makes all
+-- generated references monomorphic.
+toASTReferences :: Q [Dec] -> Q [Dec]
+toASTReferences = fmap (map $ \case
+  SigD name (ForallT vars ctx (refType `AppT` (ctxOrig `AppT` dom `AppT` stage) 
+                                       `AppT` _
+                                       `AppT` fldOrig
+                                       `AppT` _))
+    -> SigD name (ForallT vars ctx (refType `AppT` (ConT ''Ann `AppT` ctxOrig `AppT` dom `AppT` stage) 
+                                            `AppT` (ConT ''Ann `AppT` ctxOrig `AppT` dom `AppT` stage) 
+                                            `AppT` fldOrig
+                                            `AppT` fldOrig))
+  ValD pat (NormalB e) locs -> ValD pat (NormalB (InfixE (Just (VarE 'element)) (VarE '(&)) (Just e))) locs
+  d -> d)
− Language/Haskell/Tools/AST/Modules.hs
@@ -1,96 +0,0 @@--- | Representation of Haskell modules, imports and exports. Also contains file-level pragmas.
-module Language.Haskell.Tools.AST.Modules where
-
-import Language.Haskell.Tools.AST.Ann
-import Language.Haskell.Tools.AST.Base
-import Language.Haskell.Tools.AST.Exprs
-import Language.Haskell.Tools.AST.Binds
-import Language.Haskell.Tools.AST.Decls
-
--- | The representation of a haskell module, that is a separate compilation unit.
--- It may or may not have a header.
-data Module dom stage
-  = Module { _filePragmas :: AnnList FilePragma dom stage
-           , _modHead :: AnnMaybe ModuleHead dom stage
-           , _modImports :: AnnList ImportDecl dom stage
-           , _modDecl :: AnnList Decl dom stage
-           }
-
--- | Module declaration with name and (optional) exports
-data ModuleHead dom stage
-  = ModuleHead { _mhName :: Ann ModuleName dom stage
-               , _mhExports :: AnnMaybe ExportSpecList dom stage
-               , _mhPragma :: AnnMaybe ModulePragma dom stage
-               }
-
--- | A list of export specifications surrounded by parentheses
-data ExportSpecList dom stage
-  = ExportSpecList { _espExports :: AnnList ExportSpec dom stage }
-  
--- | Export specifier
-data ExportSpec dom stage
-  = DeclExport { _exportDecl :: Ann IESpec dom stage
-               } -- ^ Export a name and related names
-  | ModuleExport { _exportModuleName :: Ann ModuleName dom stage
-                 } -- ^ The export of an imported module (@ module A @)
-  
--- | Marks a name to be imported or exported with related names (subspecifier)
-data IESpec dom stage
-  = IESpec { _ieName :: Ann Name dom stage
-           , _ieSubspec :: AnnMaybe SubSpec dom stage
-           }
-  
--- | Marks how related names will be imported or exported with a given name
-data SubSpec dom stage
-  = SubSpecAll -- @(..)@: a class exported with all of its methods, or a datatype exported with all of its constructors.
-  | SubSpecList { _essList :: AnnList Name dom stage } -- @(a,b,c)@: a class exported with some of its methods, or a datatype exported with some of its constructors.
-           
--- | Pragmas that must be used before defining the module         
-data FilePragma dom stage
-  = LanguagePragma { _lpPragmas :: AnnList LanguageExtension dom stage
-                   }  -- ^ LANGUAGE pragmdom stage
-  | OptionsPragma {  _opStr :: Ann StringNode dom stage
-                  } -- ^ OPTIONS pragma, possibly qualified with a tool, e.g. OPTIONS_GHC
-                        
--- | Pragmas that must be used after the module head  
-data ModulePragma dom stage
-  = ModuleWarningPragma { _modWarningStr :: AnnList StringNode dom stage
-                        }  -- ^ a warning pragma attached to the module
-  | ModuleDeprecatedPragma {  _modDeprecatedPragma :: AnnList StringNode dom stage
-                           } -- ^ a deprecated pragma attached to the module
-
--- | The name of the enabled language extension, for example (@ LambdaCase @)
-data LanguageExtension dom stage = LanguageExtension { _langExt :: String }
-
--- | An import declaration: @import Module.Name@         
-data ImportDecl dom stage
-  = ImportDecl { _importSource :: AnnMaybe ImportSource dom stage
-               , _importQualified :: AnnMaybe ImportQualified dom stage
-               , _importSafe :: AnnMaybe ImportSafe dom stage
-               , _importPkg :: AnnMaybe StringNode dom stage
-               , _importModule :: Ann ModuleName dom stage
-               , _importAs :: AnnMaybe ImportRenaming dom stage
-               , _importSpec :: AnnMaybe ImportSpec dom stage
-               }
-
--- | Restriction on the imported names
-data ImportSpec dom stage
-  = ImportSpecList { _importSpecList :: AnnList IESpec dom stage
-                   } -- ^ Restrict the import definition to ONLY import the listed names
-  | ImportSpecHiding { _importSpecHiding :: AnnList IESpec dom stage
-                     } -- ^ Restrict the import definition to DONT import the listed names
-               
--- | Marks the import as qualified: @qualified@
-data ImportQualified dom stage = ImportQualified
-
--- | Marks the import as source: @{-# SOURCE #-}@
-data ImportSource dom stage = ImportSource
-
--- | Marks the import as safe: @safe@
-data ImportSafe dom stage = ImportSafe
-
--- | Marks an imported name to belong to the type namespace: @type@
-data TypeNamespace dom stage = TypeNamespace
-
--- | Renaming imports (@ as A @)
-data ImportRenaming dom stage = ImportRenaming { _importRename :: Ann ModuleName dom stage }
− Language/Haskell/Tools/AST/Modules.hs-boot
@@ -1,8 +0,0 @@-{-# LANGUAGE RoleAnnotations #-}
-module Language.Haskell.Tools.AST.Modules where
-
-type role Module nominal nominal
-data Module dom stage
-
-type role ImportDecl nominal nominal
-data ImportDecl dom stage
− Language/Haskell/Tools/AST/Patterns.hs
@@ -1,70 +0,0 @@--- | Representation of Haskell patterns
-module Language.Haskell.Tools.AST.Patterns where
-          
-import Language.Haskell.Tools.AST.Ann
-import Language.Haskell.Tools.AST.Base  
-import Language.Haskell.Tools.AST.Literals
-import Language.Haskell.Tools.AST.Types
-import {-# SOURCE #-} Language.Haskell.Tools.AST.Exprs (Expr, FieldWildcard)
-import {-# SOURCE #-} Language.Haskell.Tools.AST.TH
-
-        
--- | Representation of patterns for pattern bindings
-data Pattern dom stage
-  = VarPat        { _patternName :: Ann Name dom stage
-                  } -- ^ Pattern name binding
-  | LitPat        { _patternLiteral :: Ann Literal dom stage
-                  } -- ^ Literal pattern
-  | InfixPat      { _patternLhs :: Ann Pattern dom stage
-                  , _patternOperator :: Ann Operator dom stage
-                  , _patternRhs :: Ann Pattern dom stage
-                  } -- ^ Infix constructor application pattern (@ a :+: b @)
-  | AppPat        { _patternName :: Ann Name dom stage
-                  , _patternArgs :: AnnList Pattern dom stage
-                  } -- ^ Constructor application pattern (@ Point x y @)
-  | TuplePat      { _patternElems :: AnnList Pattern dom stage
-                  } -- ^ Tuple pattern (@ (x,y) @)
-  | UnboxTuplePat { _patternElems :: AnnList Pattern dom stage
-                  } -- ^ Unboxed tuple pattern (@ (# x, y #) @)
-  | ListPat       { _patternElems :: AnnList Pattern dom stage
-                  } -- ^ List pattern (@ [1,2,a,x] @)
-  | ParArrPat     { _patternElems :: AnnList Pattern dom stage
-                  } -- ^ Parallel array pattern (@ [:1,2,a,x:] @)
-  | ParenPat      { _patternInner :: Ann Pattern dom stage
-                  } -- ^ Parenthesised patterns
-  | RecPat        { _patternName :: Ann Name dom stage
-                  , _patternFields :: AnnList PatternField dom stage
-                  } -- ^ Record pattern (@ Point { x = 3, y } @)
-  | AsPat         { _patternName :: Ann Name dom stage
-                  , _patternInner :: Ann Pattern dom stage
-                  } -- ^ As-pattern (explicit name binding) (@ ls\@(hd:_) @)
-  | WildPat       -- ^ Wildcard pattern: (@ _ @)
-  | IrrPat        { _patternInner :: Ann Pattern dom stage
-                  } -- ^ Irrefutable pattern (@ ~(x:_) @)
-  | BangPat       { _patternInner :: Ann Pattern dom stage
-                  } -- ^ Bang pattern (@ !x @)
-  | TypeSigPat    { _patternInner :: Ann Pattern dom stage
-                  , _patternType :: Ann Type dom stage
-                  } -- ^ Pattern with explicit type signature (@ __ :: Int @)
-  | ViewPat       { _patternExpr :: Ann Expr dom stage
-                  , _patternInner :: Ann Pattern dom stage
-                  } -- ^ View pattern (@ f -> Just 1 @)
-  -- regular list pattern omitted
-  -- xml patterns omitted
-  | SplicePat     { _patternSplice :: Ann Splice dom stage
-                  } -- ^ Splice patterns: @$(generateX inp)@
-  | QuasiQuotePat { _patQQ :: Ann QuasiQuote dom stage
-                  } -- ^ Quasi-quoted patterns: @[| 1 + 2 |]@
-  | NPlusKPat     { _patternName :: Ann Name dom stage
-                  , _patternLit :: Ann Literal dom stage
-                  }
-                  
--- Field specification of a record pattern
-data PatternField dom stage
-  = NormalFieldPattern   { _fieldPatternName :: Ann Name dom stage
-                         , _fieldPattern :: Ann Pattern dom stage
-                         } -- ^ Named field pattern (@ p = Point 3 2 @)
-  | FieldPunPattern      { _fieldPatternName :: Ann Name dom stage
-                         } -- ^ Named field pun (@ p @)
-  | FieldWildcardPattern { _fieldPatternWildcard :: Ann FieldWildcard dom stage
-                         } -- ^ Wildcard field pattern (@ .. @)
Language/Haskell/Tools/AST/References.hs view
@@ -1,124 +1,141 @@ {-# LANGUAGE FlexibleContexts, TemplateHaskell #-}
--- Generated references for handling the custom AST
+-- | Generated references for AST elements.
 module Language.Haskell.Tools.AST.References where
 
-import Control.Reference
+import Control.Reference hiding (element)
+import Language.Haskell.Tools.AST.MakeASTReferences
 
-import Language.Haskell.Tools.AST.Modules
-import Language.Haskell.Tools.AST.TH
-import Language.Haskell.Tools.AST.Decls
-import Language.Haskell.Tools.AST.Binds
-import Language.Haskell.Tools.AST.Exprs
-import Language.Haskell.Tools.AST.Stmts
-import Language.Haskell.Tools.AST.Patterns
-import Language.Haskell.Tools.AST.Types
-import Language.Haskell.Tools.AST.Kinds
-import Language.Haskell.Tools.AST.Literals
-import Language.Haskell.Tools.AST.Base
+import Language.Haskell.Tools.AST.Representation.Modules
+import Language.Haskell.Tools.AST.Representation.TH
+import Language.Haskell.Tools.AST.Representation.Decls
+import Language.Haskell.Tools.AST.Representation.Binds
+import Language.Haskell.Tools.AST.Representation.Exprs
+import Language.Haskell.Tools.AST.Representation.Stmts
+import Language.Haskell.Tools.AST.Representation.Patterns
+import Language.Haskell.Tools.AST.Representation.Types
+import Language.Haskell.Tools.AST.Representation.Kinds
+import Language.Haskell.Tools.AST.Representation.Literals
+import Language.Haskell.Tools.AST.Representation.Names
 import Language.Haskell.Tools.AST.Ann
 
--- Modules
-makeReferences ''Module
-makeReferences ''ModuleHead
-makeReferences ''ExportSpecList
-makeReferences ''ExportSpec
-makeReferences ''IESpec
-makeReferences ''SubSpec
-makeReferences ''ModulePragma
-makeReferences ''ImportDecl
-makeReferences ''ImportSpec
-makeReferences ''ImportQualified
-makeReferences ''ImportSource
-makeReferences ''ImportSafe
-makeReferences ''TypeNamespace
-makeReferences ''ImportRenaming
+-- * Modules
+$(toASTReferences (makeReferences ''UModule))
+$(toASTReferences (makeReferences ''UModuleHead))
+$(toASTReferences (makeReferences ''UExportSpecs))
+$(toASTReferences (makeReferences ''UExportSpec))
+$(toASTReferences (makeReferences ''UIESpec))
+$(toASTReferences (makeReferences ''USubSpec))
+$(toASTReferences (makeReferences ''UModulePragma))
+$(toASTReferences (makeReferences ''UImportDecl))
+$(toASTReferences (makeReferences ''UImportSpec))
+$(toASTReferences (makeReferences ''UImportQualified))
+$(toASTReferences (makeReferences ''UImportSource))
+$(toASTReferences (makeReferences ''UImportSafe))
+$(toASTReferences (makeReferences ''UTypeNamespace))
+$(toASTReferences (makeReferences ''UImportRenaming))
+$(toASTReferences (makeReferences ''UModuleName))
+$(toASTReferences (makeReferences ''ULanguageExtension))
+$(toASTReferences (makeReferences ''TypeKeyword))
 
--- Declarations
-makeReferences ''Decl
-makeReferences ''ClassBody
-makeReferences ''ClassElement
-makeReferences ''DeclHead
-makeReferences ''InstBody
-makeReferences ''InstBodyDecl
-makeReferences ''GadtConDecl
-makeReferences ''GadtConType
-makeReferences ''FunDeps
-makeReferences ''FunDep
-makeReferences ''ConDecl
-makeReferences ''FieldDecl
-makeReferences ''Deriving
-makeReferences ''InstanceRule
-makeReferences ''InstanceHead
-makeReferences ''TypeEqn
-makeReferences ''KindConstraint
-makeReferences ''TyVar
-makeReferences ''Type
-makeReferences ''Kind
-makeReferences ''Context
-makeReferences ''Assertion
-makeReferences ''Expr
-makeReferences ''Stmt'
-makeReferences ''CompStmt
-makeReferences ''ValueBind
-makeReferences ''Pattern
-makeReferences ''PatternField
-makeReferences ''Splice
-makeReferences ''QQString
-makeReferences ''Match
-makeReferences ''Alt'
-makeReferences ''Rhs
-makeReferences ''GuardedRhs
-makeReferences ''FieldUpdate
-makeReferences ''Bracket
-makeReferences ''TopLevelPragma
-makeReferences ''Rule
-makeReferences ''AnnotationSubject
-makeReferences ''MinimalFormula
-makeReferences ''ExprPragma
-makeReferences ''SourceRange
-makeReferences ''Number
-makeReferences ''QuasiQuote
-makeReferences ''RhsGuard
-makeReferences ''LocalBind
-makeReferences ''LocalBinds
-makeReferences ''FixitySignature
-makeReferences ''TypeSignature
-makeReferences ''ListCompBody
-makeReferences ''TupSecElem
-makeReferences ''TypeFamily
-makeReferences ''TypeFamilySpec
-makeReferences ''InjectivityAnn
-makeReferences ''CaseRhs'
-makeReferences ''GuardedCaseRhs'
-makeReferences ''PatternSynonym
-makeReferences ''PatSynRhs
-makeReferences ''PatSynLhs
-makeReferences ''PatSynWhere
-makeReferences ''PatternTypeSignature
-makeReferences ''Role
-makeReferences ''LanguageExtension
-makeReferences ''MatchLhs
+-- * Declarations
+$(toASTReferences (makeReferences ''UDecl))
+$(toASTReferences (makeReferences ''UClassBody))
+$(toASTReferences (makeReferences ''UClassElement))
+$(toASTReferences (makeReferences ''UDeclHead))
+$(toASTReferences (makeReferences ''UInstBody))
+$(toASTReferences (makeReferences ''UInstBodyDecl))
+$(toASTReferences (makeReferences ''UTypeFamily))
+$(toASTReferences (makeReferences ''UTypeFamilySpec))
+$(toASTReferences (makeReferences ''UInjectivityAnn))
+$(toASTReferences (makeReferences ''UDataOrNewtypeKeyword))
+$(toASTReferences (makeReferences ''UGadtConDecl))
+$(toASTReferences (makeReferences ''UGadtConType))
+$(toASTReferences (makeReferences ''UPatternSynonym))
+$(toASTReferences (makeReferences ''UPatSynRhs))
+$(toASTReferences (makeReferences ''UPatSynLhs))
+$(toASTReferences (makeReferences ''UPatSynWhere))
+$(toASTReferences (makeReferences ''UPatternTypeSignature))
+$(toASTReferences (makeReferences ''URole))
+$(toASTReferences (makeReferences ''UFunDeps))
+$(toASTReferences (makeReferences ''UFunDep))
+$(toASTReferences (makeReferences ''UConDecl))
+$(toASTReferences (makeReferences ''UFieldDecl))
+$(toASTReferences (makeReferences ''UDeriving))
+$(toASTReferences (makeReferences ''UInstanceRule))
+$(toASTReferences (makeReferences ''UInstanceHead))
+$(toASTReferences (makeReferences ''UTypeEqn))
+$(toASTReferences (makeReferences ''URule))
+$(toASTReferences (makeReferences ''UOverlapPragma))
+$(toASTReferences (makeReferences ''UCallConv))
+$(toASTReferences (makeReferences ''USafety))
+$(toASTReferences (makeReferences ''UPhaseControl))
+$(toASTReferences (makeReferences ''PhaseNumber))
+$(toASTReferences (makeReferences ''PhaseInvert))
+$(toASTReferences (makeReferences ''UTopLevelPragma))
+$(toASTReferences (makeReferences ''UAnnotationSubject))
+$(toASTReferences (makeReferences ''UMinimalFormula))
+$(toASTReferences (makeReferences ''USourceRange))
+$(toASTReferences (makeReferences ''Number))
 
--- Literal
-makeReferences ''Literal
-makeReferences ''Promoted
 
--- Base
-makeReferences ''Operator
-makeReferences ''Name
-makeReferences ''QualifiedName
-makeReferences ''ModuleName
-makeReferences ''UnqualName
-makeReferences ''StringNode
-makeReferences ''DataOrNewtypeKeyword
-makeReferences ''DoKind
-makeReferences ''TypeKeyword
-makeReferences ''OverlapPragma
-makeReferences ''CallConv
-makeReferences ''ArrowAppl
-makeReferences ''Safety
-makeReferences ''Assoc
-makeReferences ''Precedence
-makeReferences ''PhaseControl
-makeReferences ''PhaseNumber
-makeReferences ''PhaseInvert+-- * Binds
+$(toASTReferences (makeReferences ''UMatch))
+$(toASTReferences (makeReferences ''URhs))
+$(toASTReferences (makeReferences ''UGuardedRhs))
+$(toASTReferences (makeReferences ''URhsGuard))
+$(toASTReferences (makeReferences ''ULocalBind))
+$(toASTReferences (makeReferences ''ULocalBinds))
+$(toASTReferences (makeReferences ''UFixitySignature))
+$(toASTReferences (makeReferences ''Assoc))
+$(toASTReferences (makeReferences ''Precedence))
+$(toASTReferences (makeReferences ''UTypeSignature))
+$(toASTReferences (makeReferences ''UMatchLhs))
+
+-- * Kinds
+$(toASTReferences (makeReferences ''UKindConstraint))
+
+-- * Types
+$(toASTReferences (makeReferences ''UValueBind))
+$(toASTReferences (makeReferences ''UTyVar))
+$(toASTReferences (makeReferences ''UType))
+$(toASTReferences (makeReferences ''UKind))
+$(toASTReferences (makeReferences ''UContext))
+$(toASTReferences (makeReferences ''UAssertion))
+
+-- * Expressions
+$(toASTReferences (makeReferences ''UExpr))
+$(toASTReferences (makeReferences ''UAlt'))
+$(toASTReferences (makeReferences ''UFieldUpdate))
+$(toASTReferences (makeReferences ''UTupSecElem))
+$(toASTReferences (makeReferences ''UExprPragma))
+$(toASTReferences (makeReferences ''UCaseRhs'))
+$(toASTReferences (makeReferences ''UGuardedCaseRhs'))
+$(toASTReferences (makeReferences ''UArrowAppl))
+
+-- * Statements
+$(toASTReferences (makeReferences ''UStmt'))
+$(toASTReferences (makeReferences ''UCompStmt))
+$(toASTReferences (makeReferences ''UListCompBody))
+$(toASTReferences (makeReferences ''UDoKind))
+
+-- * Patterns
+$(toASTReferences (makeReferences ''UPattern))
+$(toASTReferences (makeReferences ''UPatternField))
+
+-- * Template Haskell
+$(toASTReferences (makeReferences ''USplice))
+$(toASTReferences (makeReferences ''UQuasiQuote))
+$(toASTReferences (makeReferences ''QQString))
+$(toASTReferences (makeReferences ''UBracket))
+
+-- * Literals
+$(toASTReferences (makeReferences ''ULiteral))
+$(toASTReferences (makeReferences ''UPromoted))
+
+-- * Names
+$(toASTReferences (makeReferences ''UOperator))
+$(toASTReferences (makeReferences ''UName))
+$(toASTReferences (makeReferences ''UQualifiedName))
+$(toASTReferences (makeReferences ''UNamePart))
+$(toASTReferences (makeReferences ''UStringNode))
+
+ Language/Haskell/Tools/AST/Representation/Binds.hs view
@@ -0,0 +1,101 @@+-- | Representation of Haskell AST value and function bindings (both local and top-level)
+module Language.Haskell.Tools.AST.Representation.Binds where
+
+import Language.Haskell.Tools.AST.Ann
+import Language.Haskell.Tools.AST.Representation.Names
+import Language.Haskell.Tools.AST.Representation.Patterns
+import Language.Haskell.Tools.AST.Representation.Exprs
+import Language.Haskell.Tools.AST.Representation.Types
+import Language.Haskell.Tools.AST.Representation.Literals
+import {-# SOURCE #-} Language.Haskell.Tools.AST.Representation.TH
+
+-- | Value binding for top-level and local bindings
+data UValueBind dom stage
+  = USimpleBind { _valBindPat :: Ann UPattern dom stage
+                , _valBindRhs :: Ann URhs dom stage
+                , _valBindLocals :: AnnMaybeG ULocalBinds dom stage
+                } -- ^ Non-function binding (@ v = "12" @)  
+  -- TODO: use one name for a function instead of names in each match
+  | UFunBind    { _funBindMatches :: AnnListG UMatch dom stage
+                } -- ^ Function binding (@ f 0 = 1; f x = x @). All matches must have the same name.
+
+-- | Clause of function binding   
+data UMatch dom stage
+  = UMatch { _matchLhs :: Ann UMatchLhs dom stage
+           , _matchRhs :: Ann URhs dom stage
+           , _matchBinds :: AnnMaybeG ULocalBinds dom stage
+           } 
+
+-- | Something on the left side of the match
+data UMatchLhs dom stage
+  = UNormalLhs { _matchLhsName :: Ann UName dom stage
+               , _matchLhsArgs :: AnnListG UPattern dom stage
+               } -- ^ A match lhs with the function name and parameter names (@ f a b @)
+  | UInfixLhs { _matchLhsLhs :: Ann UPattern dom stage
+              , _matchLhsOperator :: Ann UOperator dom stage
+              , _matchLhsRhs :: Ann UPattern dom stage
+              , _matchLhsArgs :: AnnListG UPattern dom stage
+              } -- ^ An infix match lhs for an operator (@ a + b @)
+    
+-- | Local bindings attached to a declaration (@ where x = 42 @)             
+data ULocalBinds dom stage
+  = ULocalBinds { _localBinds :: AnnListG ULocalBind dom stage
+                }
+  
+-- | Bindings that are enabled in local blocks (where or let).
+data ULocalBind dom stage
+  -- TODO: check that no other signature can be inside a local binding
+  = ULocalValBind   { _localVal :: Ann UValueBind dom stage
+                    } -- ^ A local binding for a value
+  | ULocalSignature { _localSig :: Ann UTypeSignature dom stage
+                    } -- ^ A local type signature
+  | ULocalFixity    { _localFixity :: Ann UFixitySignature dom stage
+                    } -- ^ A local fixity declaration
+                   
+-- | A type signature (@ f :: Int -> Int @)
+data UTypeSignature dom stage
+  = UTypeSignature { _tsName :: AnnListG UName dom stage
+                   , _tsType :: Ann UType dom stage
+                   }     
+            
+-- * Fixities
+
+-- | A fixity signature (@ infixl 5 +, - @).
+data UFixitySignature dom stage
+  = UFixitySignature { _fixityAssoc :: Ann Assoc dom stage
+                     , _fixityPrecedence :: Ann Precedence dom stage
+                     , _fixityOperators :: AnnListG UOperator dom stage
+                     }
+
+-- | Associativity of an operator.
+data Assoc dom stage
+  = AssocNone  -- ^ non-associative operator (declared with @infix@)
+  | AssocLeft  -- ^ left-associative operator (declared with @infixl@)
+  | AssocRight -- ^ right-associative operator (declared with @infixr@)
+   
+-- | Numeric precedence of an operator
+data Precedence dom stage
+  = Precedence { _precedenceValue :: Int } 
+
+-- | Right hand side of a value binding (possible with guards): (@ = 3 @ or @ | x == 1 = 3; | otherwise = 4 @)
+data URhs dom stage
+  = UUnguardedRhs { _rhsExpr :: Ann UExpr dom stage
+                  } -- ^ An unguarded right-hand-side (@ = 3 @)
+  | UGuardedRhss  { _rhsGuards :: AnnListG UGuardedRhs dom stage
+                  } -- ^ An unguarded right-hand-side (@ | x == 1 = 3; | otherwise = 4 @)
+      
+-- | A guarded right-hand side of a value binding (@ | x > 3 = 2 @)      
+data UGuardedRhs dom stage
+  = UGuardedRhs { _guardStmts :: AnnListG URhsGuard dom stage -- ^ Cannot be empty.
+                , _guardExpr :: Ann UExpr dom stage
+                } 
+
+-- | Guards for value bindings and pattern matches (@ Just v <- x, v > 1 @)
+data URhsGuard dom stage
+  = UGuardBind  { _guardPat :: Ann UPattern dom stage
+                , _guardRhs :: Ann UExpr dom stage
+                } -- ^ A bind statement in a pattern guard (@ Just v <- x @)
+  | UGuardLet   { _guardBinds :: AnnListG ULocalBind dom stage
+                } -- ^ A let statement in a pattern guard (@ let x = 3 @)
+  | UGuardCheck { _guardCheck :: Ann UExpr dom stage
+                } -- ^ An expression to check for a pattern guard
+ Language/Haskell/Tools/AST/Representation/Binds.hs-boot view
@@ -0,0 +1,11 @@+{-# LANGUAGE RoleAnnotations #-}
+module Language.Haskell.Tools.AST.Representation.Binds where
+
+type role ULocalBind nominal nominal
+data ULocalBind dom stage
+
+type role ULocalBinds nominal nominal
+data ULocalBinds dom stage
+
+type role URhsGuard nominal nominal
+data URhsGuard dom stage
+ Language/Haskell/Tools/AST/Representation/Decls.hs view
@@ -0,0 +1,434 @@+-- | Representation of Haskell AST definitions. These include definition of data types, classes, instances and so on. 
+-- The definition of value bindings are in the Binds module.
+module Language.Haskell.Tools.AST.Representation.Decls where
+
+import Language.Haskell.Tools.AST.Representation.Binds
+import Language.Haskell.Tools.AST.Representation.Types
+import Language.Haskell.Tools.AST.Representation.Patterns
+import Language.Haskell.Tools.AST.Representation.Kinds
+import Language.Haskell.Tools.AST.Representation.Exprs
+import Language.Haskell.Tools.AST.Representation.Names
+import Language.Haskell.Tools.AST.Representation.Literals
+import Language.Haskell.Tools.AST.Ann
+import {-# SOURCE #-} Language.Haskell.Tools.AST.Representation.TH
+
+-- * Declarations
+
+-- | Haskell declaration
+data UDecl dom stage
+  = UTypeDecl             { _declHead :: Ann UDeclHead dom stage
+                          , _declType :: Ann UType dom stage
+                          } -- ^ A type synonym ( @type String = [Char]@ )
+  | UTypeFamilyDecl       { _declTypeFamily :: Ann UTypeFamily dom stage
+                          } -- ^ A type family declaration ( @type family F x@ )
+  | UClosedTypeFamilyDecl { _declHead :: Ann UDeclHead dom stage
+                          , _declKind :: AnnMaybeG UKindConstraint dom stage
+                          , _declDecl :: AnnListG UTypeEqn dom stage -- ^ cannot be empty
+                          } -- ^ A closed type family declaration
+  | UDataDecl             { _declNewtype :: Ann UDataOrNewtypeKeyword dom stage
+                          , _declCtx  :: AnnMaybeG UContext dom stage
+                          , _declHead :: Ann UDeclHead dom stage
+                          , _declCons :: AnnListG UConDecl dom stage
+                          , _declDeriving :: AnnMaybeG UDeriving dom stage
+                          } -- ^ A data or newtype declaration. Empty data type declarations without 
+                            -- where keyword are always belong to DataDecl.
+  | UGDataDecl            { _declNewtype :: Ann UDataOrNewtypeKeyword dom stage
+                          , _declCtx  :: AnnMaybeG UContext dom stage
+                          , _declHead :: Ann UDeclHead dom stage
+                          , _declKind :: AnnMaybeG UKindConstraint dom stage
+                          , _declGadt :: AnnListG UGadtConDecl dom stage
+                          , _declDeriving :: AnnMaybeG UDeriving dom stage
+                          } -- ^ A GADT-style data or newtype declaration.
+  | UTypeInstDecl         { _declInstance :: Ann UInstanceRule dom stage
+                          , _declAssignedType :: Ann UType dom stage
+                          } -- ^ Type family instance declaration (@ type instance Fam T = AssignedT @)
+  | UDataInstDecl         { _declNewtype :: Ann UDataOrNewtypeKeyword dom stage
+                          , _declInstance :: Ann UInstanceRule dom stage
+                          , _declCons :: AnnListG UConDecl dom stage
+                          , _declDeriving :: AnnMaybeG UDeriving dom stage
+                          } -- ^ Data instance declaration (@ data instance Fam T = Con1 | Con2 @)
+  | UGDataInstDecl        { _declNewtype :: Ann UDataOrNewtypeKeyword dom stage
+                          , _declInstance :: Ann UInstanceRule dom stage
+                          , _declKind :: AnnMaybeG UKindConstraint dom stage
+                          , _declGadt :: AnnListG UGadtConDecl dom stage
+                          } -- ^ GADT-style data instance declaration (@ data instance Fam T where ... @)
+  | UClassDecl            { _declCtx :: AnnMaybeG UContext dom stage
+                          , _declHead :: Ann UDeclHead dom stage
+                          , _declFunDeps :: AnnMaybeG UFunDeps dom stage
+                          , _declBody :: AnnMaybeG UClassBody dom stage
+                          } -- ^ Type class declaration (@ class X a [where f = ...] @)
+  | UInstDecl             { _declOverlap :: AnnMaybeG UOverlapPragma dom stage
+                          , _declInstRule :: Ann UInstanceRule dom stage
+                          , _declInstDecl :: AnnMaybeG UInstBody dom stage
+                          } -- ^ Instance declaration (@ instance X T [where f = ...] @)
+  | UPatternSynonymDecl   { _declPatSyn :: Ann UPatternSynonym dom stage
+                          } -- ^ Pattern synonyms (@ pattern Arrow t1 t2 = App "->" [t1, t2] @)
+  | UDerivDecl            { _declOverlap :: AnnMaybeG UOverlapPragma dom stage
+                          , _declInstRule :: Ann UInstanceRule dom stage
+                          } -- ^ Standalone deriving declaration (@ deriving instance X T @)
+  | UFixityDecl           { _declFixity :: Ann UFixitySignature dom stage
+                          } -- ^ Fixity declaration (@ infixl 5 +, - @)
+  | UDefaultDecl          { _declTypes :: AnnListG UType dom stage
+                          } -- ^ Default types (@ default (T1, T2) @)
+  | UTypeSigDecl          { _declTypeSig :: Ann UTypeSignature dom stage
+                          } -- ^ Type signature declaration (@ f :: Int -> Int @)
+  | UPatTypeSigDecl       { _declPatTypeSig :: Ann UPatternTypeSignature dom stage
+                          } -- ^ Pattern type signature declaration (@ pattern Succ :: Int -> Int @)
+  | UValueBinding         { _declValBind :: Ann UValueBind dom stage
+                          } -- ^ Function or value binding (@ f x = 12 @)
+  | UForeignImport        { _declCallConv :: Ann UCallConv dom stage
+                          , _declSafety :: AnnMaybeG USafety dom stage
+                          , _declName :: Ann UName dom stage
+                          , _declType :: Ann UType dom stage
+                          } -- ^ Foreign import (@ foreign import _foo :: Int -> IO Int @)
+  | UForeignExport        { _declCallConv :: Ann UCallConv dom stage
+                          , _declName :: Ann UName dom stage
+                          , _declType :: Ann UType dom stage
+                          } -- ^ Foreign export (@ foreign export ccall _foo :: Int -> IO Int @)
+  | UPragmaDecl           { _declPragma :: Ann UTopLevelPragma dom stage
+                          } -- ^ Top-level pragmas
+  | URoleDecl             { _declRoleType :: Ann UQualifiedName dom stage
+                          , _declRoles :: AnnListG URole dom stage
+                          } -- ^ Role annotations (@ type role Ptr representational @)
+  | USpliceDecl           { _declSplice :: Ann USplice dom stage
+                          } -- ^ A Template Haskell splice declaration (@ $(generateDecls) @)
+
+-- The declared (possibly parameterized) type (@ A x :+: B y @).
+data UDeclHead dom stage
+  = UDeclHead { _dhName :: Ann UName dom stage
+              } -- ^ Type or class name
+  | UDHParen  { _dhBody :: Ann UDeclHead dom stage
+              } -- ^ Parenthesized type
+  | UDHApp    { _dhAppFun :: Ann UDeclHead dom stage
+              , _dhAppOperand :: Ann UTyVar dom stage
+              } -- ^ Type application
+  | UDHInfix  { _dhLeft :: Ann UTyVar dom stage
+              , _dhOperator :: Ann UOperator dom stage
+              , _dhRight :: Ann UTyVar dom stage
+              } -- ^ Infix application of the type/class name to the left operand
+
+-- * Type class definitions
+
+-- | The list of declarations that can appear in a typeclass
+data UClassBody dom stage
+  = UClassBody { _cbElements :: AnnListG UClassElement dom stage
+               }
+                 
+-- | Members of a class declaration       
+data UClassElement dom stage
+  = UClsSig     { _ceTypeSig :: Ann UTypeSignature dom stage
+                } -- ^ Signature: @ f :: A -> B @
+  | UClsDef     { _ceBind :: Ann UValueBind dom stage
+                } -- ^ Default binding: @ f x = "aaa" @
+  | UClsTypeFam { _ceTypeFam :: Ann UTypeFamily dom stage
+                } -- ^ Declaration of an associated type synonym: @ type T x :: * @ 
+  | UClsTypeDef { _ceHead :: Ann UDeclHead dom stage
+                , _ceKind :: Ann UType dom stage
+                } -- ^ Default choice for type synonym: @ type T x = TE @ or @ type instance T x = TE @ 
+  | UClsDefSig  { _ceName :: Ann UName dom stage
+                , _ceType :: Ann UType dom stage
+                } -- ^ Default signature (by using @DefaultSignatures@): @ default _enum :: (Generic a, GEnum (Rep a)) => [a] @
+  | UClsMinimal { _pragmaFormula :: Ann UMinimalFormula dom stage
+                } -- ^ Minimal pragma: @ {-# MINIMAL (==) | (/=) #-} @
+  -- not supported yet (GHC 8.0.1)
+  -- | UClsPatSig  { _cePatSig :: Ann UPatternTypeSignature dom stage
+  --               } -- ^ Pattern signature in a class declaration (by using @PatternSynonyms@)
+
+-- * Type class instances
+  
+-- | The instance declaration rule, which is, roughly, the part of the instance declaration before the where keyword.
+data UInstanceRule dom stage
+  = UInstanceRule  { _irVars :: AnnMaybeG (AnnListG UTyVar) dom stage
+                   , _irCtx :: AnnMaybeG UContext dom stage
+                   , _irHead :: Ann UInstanceHead dom stage
+                   } -- ^ Instance head as an instance rule (@ X a => Y a @)
+
+-- | The specification of the class instance declaration
+data UInstanceHead dom stage
+  = UInstanceHeadCon   { _ihConName :: Ann UName dom stage
+                       } -- ^ Type or class name
+  | UInstanceHeadInfix { _ihLeftOp :: Ann UType dom stage
+                       , _ihOperator :: Ann UName dom stage
+                       } -- ^ Infix application of the type/class name to the left operand
+  | UInstanceHeadParen { _ihHead :: Ann UInstanceHead dom stage
+                       } -- ^ Parenthesized instance head
+  | UInstanceHeadApp   { _ihFun :: Ann UInstanceHead dom stage
+                       , _ihType :: Ann UType dom stage
+                       } -- ^ Application to one more type
+
+-- | Instance body is the implementation of the class functions (@ where a x = 1; b x = 2 @)
+data UInstBody dom stage
+  = UInstBody { _instBodyDecls :: AnnListG UInstBodyDecl dom stage
+              }
+
+-- | Declarations inside an instance declaration.
+data UInstBodyDecl dom stage
+  = UInstBodyNormalDecl   { _instBodyDeclFunbind :: Ann UValueBind dom stage
+                          } -- ^ A normal value binding (@ f x = 12 @)
+  | UInstBodyTypeSig      { _instBodyTypeSig :: Ann UTypeSignature dom stage
+                          } -- ^ Type signature in instance definition with @InstanceSigs@
+  | UInstBodyTypeDecl     { _instBodyTypeEqn :: Ann UTypeEqn dom stage
+                          } -- ^ An associated type definition (@ type A X = B @)
+  | UInstBodyDataDecl     { _instBodyDataNew :: Ann UDataOrNewtypeKeyword dom stage
+                          , _instBodyLhsType :: Ann UInstanceRule dom stage
+                          , _instBodyDataCons :: AnnListG UConDecl dom stage
+                          , _instBodyDerivings :: AnnMaybeG UDeriving dom stage
+                          } -- ^ An associated data type implementation (@ data A X = C1 | C2 @)
+  | UInstBodyGadtDataDecl { _instBodyDataNew :: Ann UDataOrNewtypeKeyword dom stage
+                          , _instBodyLhsType :: Ann UInstanceRule dom stage
+                          , _instBodyDataKind :: AnnMaybeG UKindConstraint dom stage
+                          , _instBodyGadtCons :: AnnListG UGadtConDecl dom stage
+                          , _instBodyDerivings :: AnnMaybeG UDeriving dom stage
+                          } -- ^ An associated data type implemented using GADT style
+  | USpecializeInstance   { _specializeInstanceType :: Ann UType dom stage
+                          } -- ^ Specialize instance pragma (no phase selection is allowed)
+  -- not supported yet
+  -- | UInstBodyPatSyn       { _instBodyPatSyn :: Ann UPatternSynonym dom stage
+  --                         } -- ^ A pattern synonym in a class instance
+
+-- | Overlap pragmas. Can be applied to class declarations and class instance declarations.    
+data UOverlapPragma dom stage
+  = UEnableOverlap     -- ^ @OVERLAP@ pragma
+  | UDisableOverlap    -- ^ @NO_OVERLAP@ pragma
+  | UOverlappable      -- ^ @OVERLAPPABLE@ pragma
+  | UOverlapping       -- ^ @OVERLAPPING@ pragma
+  | UOverlaps          -- ^ @OVERLAPS@ pragma
+  | UIncoherentOverlap -- ^ @INCOHERENT@ pragma
+
+-- * Type families
+
+-- | Open type and data families
+data UTypeFamily dom stage
+  = UTypeFamily { _tfHead :: Ann UDeclHead dom stage
+                , _tfSpec :: AnnMaybeG UTypeFamilySpec dom stage
+                } -- ^ Type family declaration (@ type family A a :: * -> * @)
+  | UDataFamily { _tfHead :: Ann UDeclHead dom stage
+                , _tfKind :: AnnMaybeG UKindConstraint dom stage
+                } -- ^ Data family declaration (@ data family A a :: * -> * @)
+
+-- | Type family specification with kinds specification and injectivity.
+data UTypeFamilySpec dom stage
+  = UTypeFamilyKind { _tfSpecKind :: Ann UKindConstraint dom stage
+                    } -- ^ Specifies the kind of a type family (@ :: * -> * @)
+  | UTypeFamilyInjectivity { _tfInjectivity :: Ann UInjectivityAnn dom stage
+                           } -- ^ Specifies the injectivity of a type family (@ = r | r -> a @)
+
+-- | Injectivity annotation for type families (@ = r | r -> a @)
+data UInjectivityAnn dom stage
+  = UInjectivityAnn { _injAnnRes :: Ann UName dom stage
+                    , _injAnnDeps :: AnnListG UName dom stage
+                    }
+
+-- | Type equations as found in closed type families (@ T A = S @)
+data UTypeEqn dom stage
+  = UTypeEqn { _teLhs :: Ann UType dom stage
+             , _teRhs :: Ann UType dom stage
+             }
+
+-- * Type definitions
+
+-- | GADT constructor declaration (@ D1 :: { val :: Int } -> T String @)
+data UGadtConDecl dom stage
+  = UGadtConDecl { _gadtConNames :: AnnListG UName dom stage
+                 , _gadtConType :: Ann UGadtConType dom stage
+                 }
+                   
+-- | The @data@ or the @newtype@ keyword to define ADTs.
+data UDataOrNewtypeKeyword dom stage
+  = UDataKeyword
+  | UNewtypeKeyword
+
+-- | Type of GADT constructors (can be record types: @{ val :: Int }@)
+data UGadtConType dom stage
+  = UGadtNormalType { _gadtConNormalType :: Ann UType dom stage
+                    }
+  | UGadtRecordType { _gadtConRecordFields :: AnnListG UFieldDecl dom stage
+                    , _gadtConResultType :: Ann UType dom stage
+                    }
+
+-- | A list of functional dependencies: @ | a -> b, c -> d @ separated by commas  
+data UFunDeps dom stage
+  = UFunDeps { _funDeps :: AnnListG UFunDep dom stage
+             } 
+         
+-- | A functional dependency, given on the form @l1 ... ln -> r1 ... rn@         
+data UFunDep dom stage
+  = UFunDep { _funDepLhs :: AnnListG UName dom stage
+            , _funDepRhs :: AnnListG UName dom stage
+            }
+  
+-- | A constructor declaration for a datatype
+data UConDecl dom stage
+  = UConDecl      { _conDeclName :: Ann UName dom stage
+                  , _conDeclArgs :: AnnListG UType dom stage
+                  } -- ^ Ordinary data constructor (@ C t1 t2 @)
+  | URecordDecl   { _conDeclName :: Ann UName dom stage
+                  , _conDeclFields :: AnnListG UFieldDecl dom stage
+                  } -- ^ Record data constructor (@ C { _n1 :: t1, _n2 :: t2 } @)
+  | UInfixConDecl { _conDeclLhs :: Ann UType dom stage
+                  , _conDeclOp :: Ann UOperator dom stage
+                  , _conDeclRhs :: Ann UType dom stage
+                  } -- ^ Infix data constructor (@ t1 :+: t2 @)
+  
+-- | Field declaration (@ fld :: Int @)
+data UFieldDecl dom stage
+  = UFieldDecl { _fieldNames :: AnnListG UName dom stage
+               , _fieldType :: Ann UType dom stage
+               }
+  
+-- | A deriving clause following a data type declaration. (@ deriving Show @ or @ deriving (Show, Eq) @)
+data UDeriving dom stage
+  = UDerivingOne { _oneDerived :: Ann UInstanceHead dom stage }
+  | UDerivings { _allDerived :: AnnListG UInstanceHead dom stage }
+
+-- * Pattern synonyms
+
+-- | Pattern type signature declaration (@ pattern Succ :: Int -> Int @)
+data UPatternTypeSignature dom stage
+  = UPatternTypeSignature { _patSigName :: Ann UName dom stage
+                          , _patSigType :: Ann UType dom stage
+                          }   
+
+-- | Pattern synonyms: @ pattern Arrow t1 t2 = App "->" [t1, t2] @
+data UPatternSynonym dom stage
+  = UPatternSynonym { _patLhs :: Ann UPatSynLhs dom stage
+                    , _patRhs :: Ann UPatSynRhs dom stage
+                    }
+
+-- | Left hand side of a pattern synonym
+data UPatSynLhs dom stage
+  = UNormalPatSyn { _patName :: Ann UName dom stage
+                  , _patArgs :: AnnListG UName dom stage
+                  } -- ^ A left hand side with a constructor name and arguments (@ Arrow t1 t2 @)
+  | UInfixPatSyn { _patSynLhs :: Ann UName dom stage
+                 , _patSynOp :: Ann UOperator dom stage
+                 , _patSynRhs :: Ann UName dom stage
+                 } -- ^ An infix pattern synonym left-hand side (@ t1 :+: t2 @)
+  | URecordPatSyn { _patName :: Ann UName dom stage
+                  , _patArgs :: AnnListG UName dom stage
+                  } -- ^ A record-style pattern synonym left-hand side (@ Arrow { arrowFrom, arrowTo } @)
+
+-- | Right-hand side of pattern synonym
+data UPatSynRhs dom stage
+  -- TODO: this feels bad, changing _patRhsOpposite may switch between <- and =
+  = UBidirectionalPatSyn { _patRhsPat :: Ann UPattern dom stage
+                         , _patRhsOpposite :: AnnMaybeG UPatSynWhere dom stage
+                         } -- ^ @ pattern Int = App "Int" [] @ or @ pattern Int <- App "Int" [] where Int = App "Int" [] @
+  | UOneDirectionalPatSyn { _patRhsPat :: Ann UPattern dom stage
+                          } -- ^ @ pattern Int <- App "Int" [] @
+
+-- | Where clause of pattern synonym (explicit expression direction)
+data UPatSynWhere dom stage
+  = UPatSynWhere { _patOpposite :: AnnListG UMatch dom stage }
+
+-- * Foreign imports
+  
+-- | Call conventions of foreign functions
+data UCallConv dom stage
+  = UStdCall
+  | UCCall
+  | UCPlusPlus
+  | UDotNet
+  | UJvm
+  | UJs
+  | UJavaScript
+  | UCApi
+
+-- | Safety annotations for foreign calls
+data USafety dom stage
+  = USafe
+  | UThreadSafe
+  | UUnsafe
+  | UInterruptible
+
+-- * Role annotations
+
+-- | Role annotations for types
+data URole dom stage
+  = UNominal
+  | URepresentational
+  | UPhantom
+
+-- * Rewrite rules
+
+-- | Controls the activation of a rewrite rule (@ [1] @)
+data UPhaseControl dom stage
+  = UPhaseControl { _phaseUntil :: AnnMaybeG PhaseInvert dom stage
+                  , _phaseNumber :: Ann PhaseNumber dom stage
+                  } 
+
+-- | Phase number for rewrite rules
+data PhaseNumber dom stage
+  = PhaseNumber { _phaseNum :: Integer }
+
+-- | A tilde that marks the inversion of the phase number
+data PhaseInvert dom stage = PhaseInvert
+
+-- * Pragmas
+
+-- | Top level pragmas
+data UTopLevelPragma dom stage
+  = URulePragma       { _pragmaRule :: AnnListG URule dom stage
+                      } -- ^ A pragma that introduces source rewrite rules (@ {-# RULES "map/map" [2]  forall f g xs. map f (map g xs) = map (f.g) xs #-} @)
+  | UDeprPragma       { _pragmaObjects :: AnnListG UName dom stage
+                      , _pragmaMessage :: Ann UStringNode dom stage
+                      } -- ^ A pragma that marks definitions as deprecated (@ {-# DEPRECATED f "f will be replaced by g" @)
+  | UWarningPragma    { _pragmaObjects :: AnnListG UName dom stage
+                      , _pragmaMessage :: Ann UStringNode dom stage
+                      } -- ^ A pragma that marks definitions as deprecated (@ {-# WARNING unsafePerformIO "you should know what you are doing" @)
+  | UAnnPragma        { _annotationSubject :: Ann UAnnotationSubject dom stage
+                      , _annotateExpr :: Ann UExpr dom stage
+                      } -- ^ A pragma that annotates a definition with an arbitrary value (@ {-# ANN f 42 @)
+  | UInlinePragma     { _pragmaConlike :: AnnMaybeG UConlikeAnnot dom stage
+                      , _pragmaPhase :: AnnMaybeG UPhaseControl dom stage
+                      , _inlineDef :: Ann UName dom stage
+                      } -- ^ A pragma that marks a function for inlining to the compiler (@ {-# INLINE thenUs #-} @)
+  | UNoInlinePragma   { _pragmaConlike :: AnnMaybeG UConlikeAnnot dom stage
+                      , _pragmaPhase :: AnnMaybeG UPhaseControl dom stage
+                      , _noInlineDef :: Ann UName dom stage
+                      } -- ^ A pragma that forbids a function from being inlined by the compiler (@ {-# NOINLINE f #-} @)
+  | UInlinablePragma  { _pragmaPhase :: AnnMaybeG UPhaseControl dom stage
+                      , _inlinableDef :: Ann UName dom stage
+                      } -- ^ A pragma that marks a function that it may be inlined by the compiler (@ {-# INLINABLE thenUs #-} @)
+  | ULinePragma       { _pragmaLineNum :: Ann LineNumber dom stage
+                      , _pragmaFileName :: AnnMaybeG UStringNode dom stage
+                      } -- ^ A pragma for maintaining line numbers in generated sources (@ {-# LINE 123 "somefile" #-} @)
+  | USpecializePragma { _pragmaPhase :: AnnMaybeG UPhaseControl dom stage
+                      , _specializeDef :: Ann UName dom stage
+                      , _specializeType :: AnnListG UType dom stage
+                      } -- ^ A pragma that tells the compiler that a polymorph function should be optimized for a given type (@ {-# SPECIALISE f :: Int -> b -> b #-} @)
+
+-- | A rewrite rule (@ "map/map" forall f g xs. map f (map g xs) = map (f.g) xs @)
+data URule dom stage
+  = URule { _ruleName :: Ann UStringNode dom stage -- ^ User name of the rule
+          , _rulePhase :: AnnMaybeG UPhaseControl dom stage -- ^ The compilation phases in which the rule can be applied
+          , _ruleBounded :: AnnListG UTyVar dom stage -- ^ Variables bound in the rule
+          , _ruleLhs :: Ann UExpr dom stage -- ^ The transformed expression
+          , _ruleRhs :: Ann UExpr dom stage -- ^ The resulting expression
+          }
+ 
+-- | Annotation allows you to connect an expression to any declaration. 
+data UAnnotationSubject dom stage
+  = UNameAnnotation { _annotateName :: Ann UName dom stage
+                    } -- ^ The definition with the given name is annotated
+  | UTypeAnnotation { _annotateName :: Ann UName dom stage
+                    } -- ^ A type with the given name is annotated
+  | UModuleAnnotation -- ^ The whole module is annotated
+
+-- | Formulas of minimal annotations declaring which functions should be defined.
+data UMinimalFormula dom stage
+  = UMinimalName  { _minimalName :: Ann UName dom stage
+                  }
+  | UMinimalParen { _minimalInner :: Ann UMinimalFormula dom stage
+                  }
+  | UMinimalOr    { _minimalOrs :: AnnListG UMinimalFormula dom stage
+                  } -- ^ One of the minimal formulas are needed (@ min1 | min2 @)
+  | UMinimalAnd   { _minimalAnds :: AnnListG UMinimalFormula dom stage
+                  } -- ^ Both of the minimal formulas are needed (@ min1 , min2 @)
+
+-- | A @CONLIKE@ modifier for an @INLINE@ pragma.
+data UConlikeAnnot dom stage = UConlikeAnnot
+
+-- | A line number for a line pragma.
+data LineNumber dom stage
+  = LineNumber { _lineNumber :: Int } 
+ Language/Haskell/Tools/AST/Representation/Exprs.hs view
@@ -0,0 +1,227 @@+-- | Representation of Haskell expressions
+module Language.Haskell.Tools.AST.Representation.Exprs where
+
+import Language.Haskell.Tools.AST.Ann
+import Language.Haskell.Tools.AST.Representation.Names
+import Language.Haskell.Tools.AST.Representation.Literals
+import Language.Haskell.Tools.AST.Representation.Types
+import Language.Haskell.Tools.AST.Representation.Patterns
+import Language.Haskell.Tools.AST.Representation.Stmts
+import {-# SOURCE #-} Language.Haskell.Tools.AST.Representation.TH
+import {-# SOURCE #-} Language.Haskell.Tools.AST.Representation.Binds (ULocalBind, ULocalBinds, URhsGuard)
+
+-- | Haskell expressions
+data UExpr dom stage
+  = UVar            { _exprName :: Ann UName dom stage 
+                    } -- ^ A variable or a data constructor (@ a @)
+  | ULit            { _exprLit :: Ann ULiteral dom stage
+                    } -- ^ Literal expression (@ 42 @)
+  | UInfixApp       { _exprLhs :: Ann UExpr dom stage
+                    , _exprOperator :: Ann UOperator dom stage
+                    , _exprRhs :: Ann UExpr dom stage
+                    } -- ^ An infix operator application (@ a + b @)
+  | UPrefixApp      { _exprOperator :: Ann UOperator dom stage
+                    , _exprRhs :: Ann UExpr dom stage
+                    } -- ^ Prefix operator application (@ -x @)
+  | UApp            { _exprFun :: Ann UExpr dom stage
+                    , _exprArg :: Ann UExpr dom stage
+                    } -- ^ Function application (@ f 4 @)
+  | ULambda         { _exprBindings :: AnnListG UPattern dom stage -- ^ at least one
+                    , _exprInner :: Ann UExpr dom stage
+                    } -- ^ Lambda expression (@ \a b -> a + b @)
+  | ULet            { _exprFunBind :: AnnListG ULocalBind dom stage -- ^ nonempty
+                    , _exprInner :: Ann UExpr dom stage
+                    } -- ^ Local binding (@ let x = 2; y = 3 in e x y @)
+  | UIf             { _exprCond :: Ann UExpr dom stage
+                    , _exprThen :: Ann UExpr dom stage
+                    , _exprElse :: Ann UExpr dom stage
+                    } -- ^ If expression (@ if a then b else c @)
+  | UMultiIf        { _exprIfAlts :: AnnListG UGuardedCaseRhs dom stage
+                    } -- ^ Multi way if expressions with @MultiWayIf@ extension (@ if | guard1 -> expr1; guard2 -> expr2 @)
+  | UCase           { _exprCase :: Ann UExpr dom stage
+                    , _exprAlts :: AnnListG UAlt dom stage
+                    } -- ^ Pattern matching expression (@ case expr of pat1 -> expr1; pat2 -> expr2 @)
+  | UDo             { _doKind :: Ann UDoKind dom stage
+                    , _exprStmts :: AnnListG UStmt dom stage
+                    } -- ^ Do-notation expressions (@ do x <- act1; act2 @)
+  | UTuple          { _tupleElems :: AnnListG UExpr dom stage
+                    } -- ^ Tuple expression (@ (e1, e2, e3) @)
+  | UUnboxedTuple   { _tupleElems :: AnnListG UExpr dom stage
+                    } -- ^ Unboxed tuple expression (@ (# e1, e2, e3 #) @)
+  | UTupleSection   { _tupleSectionElems :: AnnListG UTupSecElem dom stage
+                    } -- ^ Tuple section, enabled with @TupleSections@ (@ (a,,b) @). One of the elements must be missing.
+  | UUnboxedTupSec  { _tupleSectionElems :: AnnListG UTupSecElem dom stage
+                    } -- ^ Unboxed tuple section enabled with @TupleSections@ (@ (# a,,b #) @). One of the elements must be missing.
+  | UList           { _listElems :: AnnListG UExpr dom stage
+                    } -- ^ List expression: @[1,2,3]@
+  | UParArray       { _listElems :: AnnListG UExpr dom stage
+                    } -- ^ Parallel array expression: @[: 1,2,3 :]@
+  | UParen          { _exprInner :: Ann UExpr dom stage
+                    } -- ^ Parenthesized expression: @( a + b )@
+  | ULeftSection    { _exprLhs :: Ann UExpr dom stage
+                    , _exprOperator :: Ann UOperator dom stage
+                    } -- ^ Left operator section: @(1+)@
+  | URightSection   { _exprOperator :: Ann UOperator dom stage
+                    , _exprRhs :: Ann UExpr dom stage
+                    } -- ^ Right operator section: @(+1)@
+  | URecCon         { _exprRecName :: Ann UName dom stage
+                    , _exprRecFields :: AnnListG UFieldUpdate dom stage
+                    } -- ^ Record value construction: @Point { x = 3, y = -2 }@
+  | URecUpdate      { _exprInner :: Ann UExpr dom stage
+                    , _exprRecFields :: AnnListG UFieldUpdate dom stage
+                    } -- ^ Record value update: @p1 { x = 3, y = -2 }@
+  | UEnum           { _enumFrom :: Ann UExpr dom stage
+                    , _enumThen :: AnnMaybeG UExpr dom stage
+                    , _enumTo :: AnnMaybeG UExpr dom stage
+                    } -- ^ Enumeration expression (@ [1,3..10] @)
+  | UParArrayEnum   { _enumFrom :: Ann UExpr dom stage
+                    , _enumThen :: AnnMaybeG UExpr dom stage
+                    , _enumToFix :: Ann UExpr dom stage
+                    } -- ^ Parallel array enumeration (@ [: 1,3 .. 10 :] @)
+  | UListComp       { _compExpr :: Ann UExpr dom stage
+                    , _compBody :: AnnListG UListCompBody dom stage -- ^ Can only have 1 element without @ParallelListComp@
+                    } -- ^ List comprehension (@ [ (x, y) | x <- xs | y <- ys ] @)
+  | UParArrayComp   { _compExpr :: Ann UExpr dom stage
+                    , _compBody :: AnnListG UListCompBody dom stage
+                    } -- ^ Parallel array comprehensions @ [: (x, y) | x <- xs , y <- ys :] @ enabled by @ParallelArrays@
+  | UTypeSig        { _exprInner :: Ann UExpr dom stage
+                    , _exprSig :: Ann UType dom stage
+                    } -- ^ Explicit type signature (@ x :: Int @)
+  | UExplTypeApp    { _exprInner :: Ann UExpr dom stage
+                    , _exprType :: Ann UType dom stage
+                    } -- ^ Explicit type application (@ show \@Integer (read "5") @)
+  | UVarQuote       { _quotedName :: Ann UName dom stage
+                    } -- ^ @'x@ for template haskell reifying of expressions
+  | UTypeQuote      { _quotedName :: Ann UName dom stage
+                    } -- ^ @''T@ for template haskell reifying of types
+  | UBracketExpr    { _exprBracket :: Ann UBracket dom stage
+                    } -- ^ Template haskell bracket expression
+  | USplice         { _exprSplice :: Ann USplice dom stage
+                    } -- ^ Template haskell splice expression, for example: @$(gen a)@ or @$x@
+  | UQuasiQuoteExpr { _exprQQ :: Ann UQuasiQuote dom stage
+                    } -- ^ Template haskell quasi-quotation: @[$quoter|str]@
+  | UExprPragma     { _exprPragma :: Ann UExprPragma dom stage
+                    , _innerExpr :: Ann UExpr dom stage
+                    }
+  -- Arrows
+  | UProc           { _procPattern :: Ann UPattern dom stage
+                    , _procExpr :: Ann UCmd dom stage
+                    } -- ^ Arrow definition: @proc a -> f -< a+1@
+  | UArrowApp       { _exprLhs :: Ann UExpr dom stage
+                    , _arrowAppl :: Ann UArrowAppl dom stage
+                    , _exprRhs :: Ann UExpr dom stage
+                    } -- ^ Arrow application: @f -< a+1@
+  | ULamCase        { _exprAlts :: AnnListG UAlt dom stage
+                    } -- ^ Lambda case ( @\case 0 -> 1; 1 -> 2@ )
+  | UStaticPtr      { _exprInner :: Ann UExpr dom stage
+                    } -- ^ Static pointer expression (@ static e @). The inner expression must be closed (cannot have variables bound outside)
+  -- XML expressions omitted
+                   
+-- | Field update expressions
+data UFieldUpdate dom stage
+  = UNormalFieldUpdate { _fieldName :: Ann UName dom stage
+                       , _fieldValue :: Ann UExpr dom stage
+                       } -- ^ Update of a field (@ x = 1 @)
+  | UFieldPun          { _fieldUpdateName :: Ann UName dom stage
+                       } -- ^ Update the field to the value of the same name (@ x @)
+  | UFieldWildcard     { _fieldWildcard :: Ann UFieldWildcard dom stage
+                       } -- ^ Update the fields of the bounded names to their values (@ .. @). Must be the last initializer. Cannot be used in a record update expression.
+      
+-- | Marker for a field wildcard. Only needed to attach semantic information in a type-safe way.
+data UFieldWildcard dom stage = FldWildcard
+
+-- | An element of a tuple section that can be an expression or missing (indicating a value from a parameter)
+data UTupSecElem dom stage
+  = Present { _tupSecExpr :: Ann UExpr dom stage
+            } -- ^ An existing element in a tuple section
+  | Missing -- ^ A missing element in a tuple section
+  
+-- | Clause of case expression (@ Just x -> x + 1 @)
+data UAlt' expr dom stage
+  = UAlt { _altPattern :: Ann UPattern dom stage
+         , _altRhs :: Ann (UCaseRhs' expr) dom stage
+         , _altBinds :: AnnMaybeG ULocalBinds dom stage
+         }
+type UAlt = UAlt' UExpr
+type UCmdAlt = UAlt' UCmd
+
+  
+-- | Right hand side of a match (possible with guards): (@ -> 3 @ or @ | x == 1 -> 3; | otherwise -> 4 @)
+data UCaseRhs' expr dom stage
+  = UUnguardedCaseRhs { _rhsCaseExpr :: Ann expr dom stage
+                      } -- ^ Unguarded right-hand side a pattern match (@ -> 3 @)
+  | UGuardedCaseRhss  { _rhsCaseGuards :: AnnListG (UGuardedCaseRhs' expr) dom stage
+                      } -- ^ Guarded right-hand sides of a pattern match (@ | x == 1 -> 3; | otherwise -> 4 @)
+type UCaseRhs = UCaseRhs' UExpr
+type UCmdCaseRhs = UCaseRhs' UCmd
+                     
+-- | A guarded right-hand side of pattern matches binding (@ | x > 3 -> 2 @)      
+data UGuardedCaseRhs' expr dom stage
+  = UGuardedCaseRhs { _caseGuardStmts :: AnnListG URhsGuard dom stage -- ^ Cannot be empty.
+                    , _caseGuardExpr :: Ann expr dom stage
+                    } 
+type UGuardedCaseRhs = UGuardedCaseRhs' UExpr
+type UCmdGuardedCaseRhs = UGuardedCaseRhs' UCmd
+               
+-- | Pragmas that can be applied to expressions
+data UExprPragma dom stage
+  = UCorePragma      { _pragmaStr :: Ann UStringNode dom stage
+                     } -- ^ A @CORE@ pragma for adding notes to expressions.
+  | USccPragma       { _pragmaStr :: Ann UStringNode dom stage
+                     } -- ^ An @SCC@ pragma for defining cost centers for profiling
+  | UGeneratedPragma { _pragmaSrcRange :: Ann USourceRange dom stage
+                     } -- ^ A pragma that describes if an expression was generated from a code fragment by an external tool (@ {-# GENERATED "Happy.y" 1:15-1:25 #-} @)
+
+-- | In-AST source ranges (for generated pragmas)
+data USourceRange dom stage
+  = USourceRange { _srFileName :: Ann UStringNode dom stage
+                 , _srFromLine :: Ann Number dom stage
+                 , _srFromCol :: Ann Number dom stage
+                 , _srToLine :: Ann Number dom stage
+                 , _srToCol :: Ann Number dom stage
+                 }  
+
+data Number dom stage
+  = Number { _numberInteger :: Integer 
+           }
+        
+-- * Arrows
+
+data UCmd dom stage
+  = UArrowAppCmd   { _cmdLhs :: Ann UExpr dom stage
+                   , _cmdArrowOp :: Ann UArrowAppl dom stage
+                   , _cmdRhs :: Ann UExpr dom stage
+                   } -- ^ An arrow application command (@ f -< x + 1 @)
+  | UArrowFormCmd  { _cmdExpr :: Ann UExpr dom stage
+                   , _cmdInnerCmds :: AnnListG UCmd dom stage
+                   } -- ^ A form command (@ (|untilA (increment -< x+y) (within 0.5 -< x)|) @)
+  | UAppCmd        { _cmdInnerCmd :: Ann UCmd dom stage
+                   , _cmdApplied :: Ann UExpr dom stage
+                   } -- ^ A function application command
+  | UInfixCmd      { _cmdLeftCmd :: Ann UCmd dom stage
+                   , _cmdOperator :: Ann UName dom stage
+                   , _cmdRightCmd :: Ann UCmd dom stage
+                   } -- ^ An infix command application
+  | ULambdaCmd     { _cmdBindings :: AnnListG UPattern dom stage -- ^ at least one
+                   , _cmdInner :: Ann UCmd dom stage
+                   } -- ^ A lambda command 
+  | UParenCmd      { _cmdInner :: Ann UCmd dom stage
+                   } -- ^ A parenthesized command
+  | UCaseCmd       { _cmdExpr :: Ann UExpr dom stage
+                   , _cmdAlts :: AnnListG UCmdAlt dom stage
+                   } -- ^ A pattern match command
+  | UIfCmd         { _cmdExpr :: Ann UExpr dom stage
+                   , _cmdThen :: Ann UCmd dom stage
+                   , _cmdElse :: Ann UCmd dom stage
+                   } -- ^ An if command (@ if f x y then g -< x+1 else h -< y+2 @)
+  | ULetCmd        { _cmdBinds :: AnnListG ULocalBind dom stage -- ^ nonempty
+                   , _cmdInner :: Ann UCmd dom stage
+                   } -- ^ A local binding command (@ let z = x+y @)
+  | UDoCmd         { _cmdStmts :: AnnListG UCmdStmt dom stage
+                   } -- ^ A do-notation in a command
+
+data UArrowAppl dom stage
+  = ULeftAppl -- ^ Left arrow application: @-<@
+  | URightAppl -- ^ Right arrow application: @>-@
+  | ULeftHighApp -- ^ Left arrow high application: @-<<@
+  | URightHighApp -- ^ Right arrow high application: @>>-@
+ Language/Haskell/Tools/AST/Representation/Exprs.hs-boot view
@@ -0,0 +1,11 @@+{-# LANGUAGE RoleAnnotations #-}
+module Language.Haskell.Tools.AST.Representation.Exprs where
+
+type role UExpr nominal nominal
+data UExpr dom stage
+
+type role UCmd nominal nominal
+data UCmd dom stage
+
+type role UFieldWildcard phantom phantom
+data UFieldWildcard dom stage
+ Language/Haskell/Tools/AST/Representation/Kinds.hs view
@@ -0,0 +1,43 @@+-- | Representation of Haskell Kinds
+module Language.Haskell.Tools.AST.Representation.Kinds where
+
+import Language.Haskell.Tools.AST.Representation.Literals
+import Language.Haskell.Tools.AST.Ann
+import Language.Haskell.Tools.AST.Representation.Names
+
+-- | Kind constraint (@ :: * -> * @)
+data UKindConstraint dom stage
+  = UKindConstraint { _kindConstr :: Ann UKind dom stage 
+                    }
+                 
+-- | Haskell kinds
+data UKind dom stage
+  = UStarKind  -- ^ @*@, the kind of types
+  | UUnboxKind -- ^ @#@, the kind of unboxed types
+  | UFunKind      { _kindLeft :: Ann UKind dom stage
+                  , _kindRight :: Ann UKind dom stage
+                  } -- ^ @->@, the kind of type constructor
+  | UParenKind    { _kindParen :: Ann UKind dom stage
+                  } -- ^ A parenthesised kind
+  | UVarKind      { _kindVar :: Ann UName dom stage
+                  } -- ^ Kind variable (using @PolyKinds@ extension)
+  | UAppKind      { _kindAppFun :: Ann UKind dom stage
+                  , _kindAppArg :: Ann UKind dom stage 
+                  } -- ^ Kind application (@ k1 k2 @)
+  | UListKind     { _kindElem :: Ann UKind dom stage
+                  } -- ^ A list kind (@ [k] @)
+  | UPromotedKind { _kindPromoted :: Ann (UPromoted UKind) dom stage
+                  } -- ^ A promoted kind (@ '(k1,k2,k3) @)
+
+data UPromoted t dom stage
+  = UPromotedInt    { _promotedIntValue :: Integer 
+                    } -- ^ Numeric value promoted to the kind level.
+  | UPromotedString { _promotedStringValue :: String 
+                    } -- ^ String value promoted to the kind level.
+  | UPromotedCon    { _promotedConName :: Ann UName dom stage 
+                    } -- ^ A data constructor value promoted to the kind level.
+  | UPromotedList   { _promotedElements :: AnnListG t dom stage 
+                    } -- ^ A list of elements as a kind.
+  | UPromotedTuple  { _promotedElements :: AnnListG t dom stage 
+                    } -- ^ A tuple of elements as a kind.
+  | UPromotedUnit -- ^ Kind of the unit value @()@. 
+ Language/Haskell/Tools/AST/Representation/Literals.hs view
@@ -0,0 +1,29 @@+-- | Representation of Haskell literals
+module Language.Haskell.Tools.AST.Representation.Literals where
+
+import Language.Haskell.Tools.AST.Ann
+import Language.Haskell.Tools.AST.Representation.Names
+
+-- | Haskell literals
+data ULiteral dom stage
+  = UCharLit { _charLitValue :: Char 
+             } -- ^ Character literal: @'c'@
+  | UStringLit { _stringLitValue :: String 
+               } -- ^ String literal: @"abc"@
+  | UIntLit { _intLitValue :: Integer 
+            } -- ^ Integer literal: @12@
+  | UFracLit { _fracLitValue :: Rational 
+             } -- ^ Fractional literal: @3.14@
+  | UPrimIntLit { _intLitValue :: Integer 
+                } -- ^ Primitive integer literal (of type @Int#@): @32#@
+  | UPrimWordLit { _intLitValue :: Integer 
+                 } -- ^ Primitive word literal (of type @Word#@): @32##@
+  | UPrimFloatLit { _floatLitValue :: Rational 
+                  } -- ^ Primitive float literal (of type @Float#@): @3.14#@
+  | UPrimDoubleLit { _floatLitValue :: Rational 
+                   } -- ^ Primitive double literal (of type @Double#@): @3.14##@
+  | UPrimCharLit { _charLitValue :: Char 
+                 } -- ^ Primitive character literal (of type @Char#@): @'c'#@
+  | UPrimStringLit { _stringLitValue :: String 
+                   } -- ^ Primitive string literal (of type @Addr#@): @"xxx"#@
+               
+ Language/Haskell/Tools/AST/Representation/Modules.hs view
@@ -0,0 +1,103 @@+-- | Representation of Haskell modules, imports and exports. Also contains file-level pragmas.
+module Language.Haskell.Tools.AST.Representation.Modules where
+
+import Language.Haskell.Tools.AST.Ann
+import Language.Haskell.Tools.AST.Representation.Names
+import Language.Haskell.Tools.AST.Representation.Exprs
+import Language.Haskell.Tools.AST.Representation.Binds
+import Language.Haskell.Tools.AST.Representation.Decls
+
+-- | The representation of a haskell module, that is a separate compilation unit.
+-- It may or may not have a header.
+data UModule dom stage
+  = UModule { _filePragmas :: AnnListG UFilePragma dom stage
+            , _modHead :: AnnMaybeG UModuleHead dom stage
+            , _modImports :: AnnListG UImportDecl dom stage
+            , _modDecl :: AnnListG UDecl dom stage
+            }
+
+-- | Module declaration with name and (optional) exports
+data UModuleHead dom stage
+  = UModuleHead { _mhName :: Ann UModuleName dom stage
+                , _mhExports :: AnnMaybeG UExportSpecs dom stage
+                , _mhPragma :: AnnMaybeG UModulePragma dom stage
+                }
+
+-- | A list of export specifications surrounded by parentheses
+data UExportSpecs dom stage
+  = UExportSpecs { _espExports :: AnnListG UExportSpec dom stage }
+  
+-- | Export specifier
+data UExportSpec dom stage
+  = UDeclExport { _exportDecl :: Ann UIESpec dom stage
+                } -- ^ Export a name and related names
+  | UModuleExport { _exportModuleName :: Ann UModuleName dom stage
+                  } -- ^ The export of an imported module (@ module A @)
+  
+-- | Marks a name to be imported or exported with related names (subspecifier)
+data UIESpec dom stage
+  = UIESpec { _ieName :: Ann UName dom stage
+            , _ieSubspec :: AnnMaybeG USubSpec dom stage
+            }
+  
+-- | Marks how related names will be imported or exported with a given name
+data USubSpec dom stage
+  = USubSpecAll -- ^ @(..)@: a class exported with all of its methods, or a datatype exported with all of its constructors.
+  | USubSpecList { _essList :: AnnListG UName dom stage 
+                 } -- ^ @(a,b,c)@: a class exported with some of its methods, or a datatype exported with some of its constructors.
+           
+-- | Pragmas that must be used before defining the module         
+data UFilePragma dom stage
+  = ULanguagePragma { _lpPragmas :: AnnListG ULanguageExtension dom stage
+                    } -- ^ @LANGUAGE@ pragma, listing the enabled language extensions in that file
+  | UOptionsPragma {  _opStr :: Ann UStringNode dom stage
+                   } -- ^ @OPTIONS@ pragma, possibly qualified with a tool, e.g. OPTIONS_GHC
+                        
+-- | Pragmas that must be used after the module head  
+data UModulePragma dom stage
+  = UModuleWarningPragma { _modWarningStr :: AnnListG UStringNode dom stage
+                         }  -- ^ A warning pragma attached to the module
+  | UModuleDeprecatedPragma {  _modDeprecatedPragma :: AnnListG UStringNode dom stage
+                            } -- ^ A deprecated pragma attached to the module
+
+-- | The name of the enabled language extension, for example (@ LambdaCase @)
+data ULanguageExtension dom stage = ULanguageExtension { _langExt :: String }
+
+-- | An import declaration: @import Module.Name@         
+data UImportDecl dom stage
+  = UImportDecl { _importSource :: AnnMaybeG UImportSource dom stage
+                , _importQualified :: AnnMaybeG UImportQualified dom stage
+                , _importSafe :: AnnMaybeG UImportSafe dom stage
+                , _importPkg :: AnnMaybeG UStringNode dom stage
+                , _importModule :: Ann UModuleName dom stage
+                , _importAs :: AnnMaybeG UImportRenaming dom stage
+                , _importSpec :: AnnMaybeG UImportSpec dom stage
+                }
+
+-- | Restriction on the imported names
+data UImportSpec dom stage
+  = UImportSpecList { _importSpecList :: AnnListG UIESpec dom stage
+                    } -- ^ Restrict the import definition to ONLY import the listed names
+  | UImportSpecHiding { _importSpecHiding :: AnnListG UIESpec dom stage
+                      } -- ^ Restrict the import definition to DONT import the listed names
+               
+-- | Marks the import as qualified: @qualified@
+data UImportQualified dom stage = UImportQualified
+
+-- | Marks the import as source: @{-# SOURCE #-}@
+data UImportSource dom stage = UImportSource
+
+-- | Marks the import as safe: @safe@
+data UImportSafe dom stage = UImportSafe
+
+-- | Marks an imported name to belong to the type namespace: @type@
+data UTypeNamespace dom stage = UTypeNamespace
+
+-- | Renaming imports (@ as A @)
+data UImportRenaming dom stage = UImportRenaming { _importRename :: Ann UModuleName dom stage }
+
+-- | The name of a module
+data UModuleName dom stage = UModuleName { _moduleNameString :: String }
+
+-- | The @type@ keyword used to qualify that the type and not the constructor of the same name is referred
+data TypeKeyword dom stage = TypeKeyword
+ Language/Haskell/Tools/AST/Representation/Modules.hs-boot view
@@ -0,0 +1,8 @@+{-# LANGUAGE RoleAnnotations #-}
+module Language.Haskell.Tools.AST.Representation.Modules where
+
+type role UModule nominal nominal
+data UModule dom stage
+
+type role UImportDecl nominal nominal
+data UImportDecl dom stage
+ Language/Haskell/Tools/AST/Representation/Names.hs view
@@ -0,0 +1,44 @@+
+{-# LANGUAGE TypeFamilies
+           , MultiParamTypeClasses
+           , FlexibleInstances
+           #-}
+
+-- | Simple AST elements of Haskell
+module Language.Haskell.Tools.AST.Representation.Names where
+  
+import Language.Haskell.Tools.AST.Ann
+
+data UOperator dom stage
+  = UBacktickOp { _operatorName :: Ann UQualifiedName dom stage 
+                } -- ^ A normal name used as an operator with backticks: @ a `mod` b @
+  | UNormalOp { _operatorName :: Ann UQualifiedName dom stage 
+              } -- ^ A normal operator used as an operator.
+
+data UName dom stage
+  = UParenName { _simpleName :: Ann UQualifiedName dom stage 
+               } -- ^ Parenthesized name: @ foldl (+) 0 @
+  | UNormalName { _simpleName :: Ann UQualifiedName dom stage 
+                } -- ^ A normal, non-operator name.
+  | UImplicitName { _simpleName :: Ann UQualifiedName dom stage 
+                  } -- ^ Implicit name: @ ?var @
+
+-- | Possible qualified names. Contains also implicit names.
+-- Linear implicit parameter: @%x@. Non-linear implicit parameter: @?x@.
+data UQualifiedName dom stage
+  = UQualifiedName { _qualifiers :: AnnListG UNamePart dom stage
+                  , _unqualifiedName :: Ann UNamePart dom stage
+                  }
+
+nameFromList :: AnnListG UNamePart dom stage -> UQualifiedName dom stage
+nameFromList (AnnListG a xs) | not (null xs) 
+  = UQualifiedName (AnnListG a (init xs)) (last xs) 
+nameFromList _ = error "nameFromList: empty list"
+         
+-- | Parts of a qualified name.         
+data UNamePart dom stage
+  = UNamePart { _simpleNameStr :: String } 
+               
+-- | Program elements formatted as string literals (import packages, pragma texts)
+data UStringNode dom stage
+  = UStringNode { _stringNodeStr :: String }     
+ Language/Haskell/Tools/AST/Representation/Names.hs-boot view
@@ -0,0 +1,5 @@+{-# LANGUAGE RoleAnnotations #-}
+module Language.Haskell.Tools.AST.Representation.Names where
+
+type role UQualifiedName nominal nominal
+data UQualifiedName dom stage
+ Language/Haskell/Tools/AST/Representation/Patterns.hs view
@@ -0,0 +1,70 @@+-- | Representation of Haskell patterns
+module Language.Haskell.Tools.AST.Representation.Patterns where
+          
+import Language.Haskell.Tools.AST.Ann
+import Language.Haskell.Tools.AST.Representation.Names  
+import Language.Haskell.Tools.AST.Representation.Literals
+import Language.Haskell.Tools.AST.Representation.Types
+import {-# SOURCE #-} Language.Haskell.Tools.AST.Representation.Exprs (UExpr, UFieldWildcard)
+import {-# SOURCE #-} Language.Haskell.Tools.AST.Representation.TH
+
+        
+-- | Representation of patterns for pattern bindings
+data UPattern dom stage
+  = UVarPat         { _patternName :: Ann UName dom stage
+                    } -- ^ Pattern name binding
+  | ULitPat         { _patternLiteral :: Ann ULiteral dom stage
+                    } -- ^ Literal pattern
+  | UInfixAppPat    { _patternLhs :: Ann UPattern dom stage
+                    , _patternOperator :: Ann UOperator dom stage
+                    , _patternRhs :: Ann UPattern dom stage
+                    } -- ^ Infix constructor application pattern (@ a :+: b @)
+  | UAppPat         { _patternName :: Ann UName dom stage
+                    , _patternArgs :: AnnListG UPattern dom stage
+                    } -- ^ Constructor application pattern (@ Point x y @)
+  | UTuplePat       { _patternElems :: AnnListG UPattern dom stage
+                    } -- ^ Tuple pattern (@ (x,y) @)
+  | UUnboxTuplePat  { _patternElems :: AnnListG UPattern dom stage
+                    } -- ^ Unboxed tuple pattern (@ (# x, y #) @)
+  | UListPat        { _patternElems :: AnnListG UPattern dom stage
+                    } -- ^ List pattern (@ [1,2,a,x] @)
+  | UParArrPat      { _patternElems :: AnnListG UPattern dom stage
+                    } -- ^ Parallel array pattern (@ [:1,2,a,x:] @)
+  | UParenPat       { _patternInner :: Ann UPattern dom stage
+                    } -- ^ Parenthesised patterns
+  | URecPat         { _patternName :: Ann UName dom stage
+                    , _patternFields :: AnnListG UPatternField dom stage
+                    } -- ^ Record pattern (@ Point { x = 3, y } @)
+  | UAsPat          { _patternName :: Ann UName dom stage
+                    , _patternInner :: Ann UPattern dom stage
+                    } -- ^ As-pattern (explicit name binding) (@ ls\@(hd:_) @)
+  | UWildPat -- ^ Wildcard pattern: (@ _ @)
+  | UIrrefutablePat { _patternInner :: Ann UPattern dom stage
+                    } -- ^ Irrefutable pattern (@ ~(x:_) @)
+  | UBangPat        { _patternInner :: Ann UPattern dom stage
+                    } -- ^ Bang pattern (@ !x @)
+  | UTypeSigPat     { _patternInner :: Ann UPattern dom stage
+                    , _patternType :: Ann UType dom stage
+                    } -- ^ Pattern with explicit type signature (@ x :: Int @)
+  | UViewPat        { _patternExpr :: Ann UExpr dom stage
+                    , _patternInner :: Ann UPattern dom stage
+                    } -- ^ View pattern (@ f -> Just 1 @)
+  -- regular list pattern omitted
+  -- xml patterns omitted
+  | USplicePat     { _patternSplice :: Ann USplice dom stage
+                   } -- ^ Splice patterns: @$(generateX inp)@
+  | UQuasiQuotePat { _patQQ :: Ann UQuasiQuote dom stage
+                   } -- ^ Quasi-quoted patterns: @[| 1 + 2 |]@
+  | UNPlusKPat     { _patternName :: Ann UName dom stage
+                   , _patternLit :: Ann ULiteral dom stage
+                   }
+                  
+-- Field specification of a record pattern
+data UPatternField dom stage
+  = UNormalFieldPattern   { _fieldPatternName :: Ann UName dom stage
+                          , _fieldPattern :: Ann UPattern dom stage
+                          } -- ^ Named field pattern (@ p = Point 3 2 @)
+  | UFieldPunPattern      { _fieldPatternName :: Ann UName dom stage
+                          } -- ^ Named field pun (@ p @)
+  | UFieldWildcardPattern { _fieldPatternWildcard :: Ann UFieldWildcard dom stage
+                          } -- ^ Wildcard field pattern (@ .. @)
+ Language/Haskell/Tools/AST/Representation/Stmts.hs view
@@ -0,0 +1,44 @@+-- | Representation of Haskell statements (both do-notation and comprehensions)
+module Language.Haskell.Tools.AST.Representation.Stmts where
+
+import Language.Haskell.Tools.AST.Ann
+import Language.Haskell.Tools.AST.Representation.Names
+import Language.Haskell.Tools.AST.Representation.Patterns
+import {-# SOURCE #-} Language.Haskell.Tools.AST.Representation.Exprs (UExpr, UCmd)
+import {-# SOURCE #-} Language.Haskell.Tools.AST.Representation.Binds (ULocalBind)
+
+-- | Normal monadic statements
+data UStmt' expr dom stage
+  = UBindStmt { _stmtPattern :: Ann UPattern dom stage
+              , _stmtExpr :: Ann expr dom stage
+              } -- ^ Binding statement (@ x <- action @)
+  | UExprStmt { _stmtExpr :: Ann expr dom stage
+              } -- ^ Non-binding statement (@ action @)
+  | ULetStmt  { _stmtBinds :: AnnListG ULocalBind dom stage
+              } -- ^ Let statement (@ let x = 3; y = 4 @)
+  | URecStmt  { _cmdStmtBinds :: AnnListG (UStmt' expr) dom stage
+              } -- ^ A recursive binding statement with (@ rec b <- f a c; c <- f b a @)
+type UStmt = UStmt' UExpr
+type UCmdStmt = UStmt' UCmd
+
+-- | Body of a list comprehension: (@ | x <- [1..10] @)
+data UListCompBody dom stage
+  = UListCompBody { _compStmts :: AnnListG UCompStmt dom stage
+                  } 
+         
+-- | List comprehension statement
+data UCompStmt dom stage
+  = UCompStmt  { _compStmt :: Ann UStmt dom stage
+               } -- ^ Normal monadic statement of a list comprehension
+  | UThenStmt  { _thenExpr :: Ann UExpr dom stage
+               , _byExpr :: AnnMaybeG UExpr dom stage
+               } -- ^ Then statements by @TransformListComp@ (@ then sortWith by (x + y) @)
+  | UGroupStmt { _byExpr :: AnnMaybeG UExpr dom stage
+               , _usingExpr :: AnnMaybeG UExpr dom stage
+               } -- ^ Grouping statements by @TransformListComp@ (@ then group by (x + y) using groupWith @) 
+                 -- Note: either byExpr or usingExpr must have a value
+
+-- | Keywords @do@ or @mdo@ to start a do-block
+data UDoKind dom stage
+  = UDoKeyword
+  | UMDoKeyword                 
+ Language/Haskell/Tools/AST/Representation/TH.hs view
@@ -0,0 +1,41 @@+-- | Representation of Template Haskell AST elements
+module Language.Haskell.Tools.AST.Representation.TH where
+              
+import Language.Haskell.Tools.AST.Representation.Decls
+import Language.Haskell.Tools.AST.Representation.Binds
+import Language.Haskell.Tools.AST.Representation.Exprs
+import Language.Haskell.Tools.AST.Representation.Patterns
+import Language.Haskell.Tools.AST.Representation.Types
+import Language.Haskell.Tools.AST.Representation.Names
+import Language.Haskell.Tools.AST.Ann
+              
+-- | A template haskell splice          
+data USplice dom stage
+  = UIdSplice    { _spliceId :: Ann UName dom stage
+                 } -- ^ A simple name splice: @$generateX@
+  | UParenSplice { _spliceExpr :: Ann UExpr dom stage
+                 } -- ^ A splice with parentheses: @$(generate input)@
+  
+-- | Template haskell quasi-quotation: @[quoter|str]@  
+data UQuasiQuote dom stage
+  = UQuasiQuote { _qqExprName :: Ann UName dom stage
+                , _qqExprBody :: Ann QQString dom stage
+                } 
+        
+-- | Template Haskell Quasi-quotation content
+data QQString dom stage
+  = QQString { _qqString :: String 
+             } 
+
+          
+-- | Template Haskell bracket expressions
+data UBracket dom stage
+  = UExprBracket    { _bracketExpr :: Ann UExpr dom stage
+                    } -- ^ Expression bracket (@ [| x + y |] @)
+  | UPatternBracket { _bracketPattern :: Ann UPattern dom stage
+                    } -- ^ Pattern bracket (@ [p| Point x y |] @)
+  | UTypeBracket    { _bracketType :: Ann UType dom stage
+                    } -- ^ Type bracket (@ [t| (Int,Int) |] @)
+  | UDeclsBracket   { _bracketDecl :: AnnListG UDecl dom stage
+                    } -- ^ Declaration bracket (@ [d| f :: Int -> Int; f x = x*x |] @)
+            
+ Language/Haskell/Tools/AST/Representation/TH.hs-boot view
@@ -0,0 +1,11 @@+{-# LANGUAGE RoleAnnotations #-}
+module Language.Haskell.Tools.AST.Representation.TH where
+
+type role USplice nominal nominal
+data USplice dom stage
+
+type role UQuasiQuote nominal nominal
+data UQuasiQuote dom stage
+
+type role UBracket nominal nominal
+data UBracket dom stage
+ Language/Haskell/Tools/AST/Representation/Types.hs view
@@ -0,0 +1,87 @@+-- | Representation of Haskell types
+module Language.Haskell.Tools.AST.Representation.Types where
+
+import Language.Haskell.Tools.AST.Ann
+import Language.Haskell.Tools.AST.Representation.Literals
+import Language.Haskell.Tools.AST.Representation.Names
+import Language.Haskell.Tools.AST.Representation.Kinds
+import {-# SOURCE #-} Language.Haskell.Tools.AST.Representation.TH
+
+-- | Type variable declaration
+data UTyVar dom stage
+  = UTyVarDecl { _tyVarName :: Ann UName dom stage
+               , _tyVarKind :: AnnMaybeG UKindConstraint dom stage
+               }
+
+-- | Haskell types
+data UType dom stage
+  = UTyForall     { _typeBounded :: AnnListG UTyVar dom stage
+                  , _typeType :: Ann UType dom stage
+                  } -- ^ Forall types (@ forall x y . type @)
+  | UTyCtx        { _typeCtx :: Ann UContext dom stage
+                  , _typeType :: Ann UType dom stage
+                  } -- ^ Type with a context (@ forall x y . type @)
+  | UTyFun        { _typeParam :: Ann UType dom stage
+                  , _typeResult :: Ann UType dom stage
+                  } -- ^ Function types (@ a -> b @)
+  | UTyTuple      { _typeElements :: AnnListG UType dom stage
+                  } -- ^ Tuple types (@ (a,b) @)
+  | UTyUnbTuple   { _typeElements :: AnnListG UType dom stage
+                  } -- ^ Unboxed tuple types (@ (#a,b#) @)
+  | UTyList       { _typeElement :: Ann UType dom stage
+                  } -- ^ List type with special syntax (@ [a] @)
+  | UTyParArray   { _typeElement :: Ann UType dom stage
+                  } -- ^ Parallel array type (@ [:a:] @)
+  | UTyApp        { _typeCon :: Ann UType dom stage
+                  , _typeArg :: Ann UType dom stage
+                  } -- ^ Type application (@ F a @)
+  | UTyVar        { _typeName :: Ann UName dom stage
+                  } -- ^ Type variable or constructor (@ a @)
+  | UTyParen      { _typeInner :: Ann UType dom stage
+                  } -- ^ Type surrounded by parentheses (@ (T a) @)
+  | UTyInfix      { _typeLeft :: Ann UType dom stage
+                  , _typeOperator :: Ann UOperator dom stage
+                  , _typeRight :: Ann UType dom stage
+                  } -- ^ Infix type constructor (@ (a <: b) @)
+  | UTyKinded     { _typeInner :: Ann UType dom stage
+                  , _typeKind :: Ann UKind dom stage
+                  } -- ^ Type with explicit kind signature (@ a :: * @)
+  | UTyPromoted   { _tpPromoted :: Ann (UPromoted UType) dom stage
+                  } -- A promoted data type with @-XDataKinds@ (@ 3 @, @ Left @, @ 'Left @).
+  | UTySplice     { _tsSplice :: Ann USplice dom stage
+                  } -- ^ A Template Haskell splice type (@ $(genType) @).
+  | UTyQuasiQuote { _typeQQ :: Ann UQuasiQuote dom stage
+                  } -- ^ A Template Haskell quasi-quote type (@ [quoter| ... ] @).
+  | UTyBang       { _typeInner :: Ann UType dom stage
+                  } -- ^ Strict type marked with @!@.
+  | UTyLazy       { _typeInner :: Ann UType dom stage
+                  } -- ^ Lazy type marked with @~@. (Should only be used if @Strict@ or @StrictData@ language extension is used)
+  | UTyUnpack     { _typeInner :: Ann UType dom stage
+                  } -- ^ Strict type marked with UNPACK pragma. (Usually contains the bang mark.)
+  | UTyNoUnpack   { _typeInner :: Ann UType dom stage
+                  } -- ^ Strict type marked with NOUNPACK pragma. (Usually contains the bang mark.)
+  | UTyWildcard   -- ^ A wildcard type (@ _ @) with @-XPartialTypeSignatures@
+  | UTyNamedWildc { _typeWildcardName :: Ann UName dom stage
+                  } -- ^ A named wildcard type (@ _t @) with @-XPartialTypeSignatures@
+
+-- One or more assertions
+data UContext dom stage
+  = UContextOne   { _contextAssertion :: Ann UAssertion dom stage
+                  } -- ^ One assertion (@ C a => ... @)
+  | UContextMulti { _contextAssertions :: AnnListG UAssertion dom stage
+                  } -- ^ A set of assertions (@ (C1 a, C2 b) => ... @, but can be one: @ (C a) => ... @)
+
+-- | A single assertion in the context
+data UAssertion dom stage
+  = UClassAssert { _assertClsName :: Ann UName dom stage
+                 , _assertTypes :: AnnListG UType dom stage
+                 } -- ^ Class assertion (@Cls x@)
+  | UInfixAssert { _assertLhs :: Ann UType dom stage
+                 , _assertOp :: Ann UOperator dom stage
+                 , _assertRhs :: Ann UType dom stage
+                 } -- ^ Infix class assertion, also contains type equations (@ a ~ X y @)
+  | UImplicitAssert { _assertImplVar :: Ann UName dom stage
+                    , _assertImplType :: Ann UType dom stage
+                    } -- ^ Assertion for implicit parameter binding (@ ?cmp :: a -> a -> Bool @)
+                 
+                 
Language/Haskell/Tools/AST/SemaInfoClasses.hs view
@@ -1,4 +1,9 @@-{-# LANGUAGE FlexibleInstances, FlexibleContexts, ConstraintKinds #-}
+{-# LANGUAGE FlexibleInstances
+           , FlexibleContexts
+           , ConstraintKinds
+           , TypeFamilies
+           , UndecidableInstances
+           #-}
 module Language.Haskell.Tools.AST.SemaInfoClasses where
 
 import GHC
@@ -9,12 +14,14 @@ 
 import Language.Haskell.Tools.AST.Ann as AST
 import Language.Haskell.Tools.AST.SemaInfoTypes as AST
-import Language.Haskell.Tools.AST.Modules as AST
-import Language.Haskell.Tools.AST.Base as AST
-import Language.Haskell.Tools.AST.Exprs as AST
+import Language.Haskell.Tools.AST.Representation.Modules as AST
+import Language.Haskell.Tools.AST.Representation.Names as AST
+import Language.Haskell.Tools.AST.Representation.Exprs as AST
 
+-- * Information about names
+
 -- | Domains that have semantic information for names
-type HasNameInfo dom = (Domain dom, HasNameInfo' (SemanticInfo dom QualifiedName))
+type HasNameInfo dom = (Domain dom, HasNameInfo' (SemanticInfo dom UQualifiedName))
 
 -- | Infos that may have a name that can be extracted
 class HasNameInfo' si where
@@ -26,8 +33,13 @@ instance HasNameInfo' CNameInfo where
   semanticsName = fmap idName . (^? cnameInfo)
 
-type HasIdInfo dom = (Domain dom, HasIdInfo' (SemanticInfo dom QualifiedName))
+instance HasNameInfo dom => HasNameInfo' (Ann UQualifiedName dom st) where
+  semanticsName = semanticsName . (^. annotation&semanticInfo) 
 
+-- * Information about typed names
+
+type HasIdInfo dom = (Domain dom, HasIdInfo' (SemanticInfo dom UQualifiedName))
+
 -- | Infos that may have a typed name that can be extracted
 class HasIdInfo' si where
   semanticsId :: si -> Id
@@ -35,8 +47,13 @@ instance HasIdInfo' CNameInfo where
   semanticsId = (^. cnameInfo)
 
-type HasFixityInfo dom = (Domain dom, HasFixityInfo' (SemanticInfo dom QualifiedName))
+instance HasIdInfo dom => HasIdInfo' (Ann UQualifiedName dom st) where
+  semanticsId = semanticsId . (^. annotation&semanticInfo) 
 
+-- * Fixity information
+
+type HasFixityInfo dom = (Domain dom, HasFixityInfo' (SemanticInfo dom UQualifiedName))
+
 -- | Infos that may have a fixity information
 class HasFixityInfo' si where
   semanticsFixity :: si -> Maybe GHC.Fixity
@@ -44,8 +61,13 @@ instance HasFixityInfo' CNameInfo where
   semanticsFixity = (^. cnameFixity)
 
-type HasScopeInfo dom = (Domain dom, HasScopeInfo' (SemanticInfo dom QualifiedName), HasScopeInfo' (SemanticInfo dom Expr))
+instance HasFixityInfo dom => HasFixityInfo' (Ann UQualifiedName dom st) where
+  semanticsFixity = semanticsFixity . (^. annotation&semanticInfo) 
 
+-- * Scope information
+
+type HasScopeInfo dom = (Domain dom, HasScopeInfo' (SemanticInfo dom UQualifiedName), HasScopeInfo' (SemanticInfo dom UExpr))
+
 -- | Infos that contain the names that are available in theirs scope
 class HasScopeInfo' si where
   semanticsScope :: si -> Scope
@@ -59,8 +81,16 @@ instance HasScopeInfo' ScopeInfo where
   semanticsScope = (^. exprScopedLocals)
 
-type HasDefiningInfo dom = (Domain dom, HasDefiningInfo' (SemanticInfo dom QualifiedName))
+instance HasScopeInfo dom => HasScopeInfo' (Ann UExpr dom st) where
+  semanticsScope = semanticsScope . (^. annotation&semanticInfo) 
 
+instance HasScopeInfo dom => HasScopeInfo' (Ann UQualifiedName dom st) where
+  semanticsScope = semanticsScope . (^. annotation&semanticInfo) 
+
+-- * Information about names being defined
+
+type HasDefiningInfo dom = (Domain dom, HasDefiningInfo' (SemanticInfo dom UQualifiedName))
+
 -- | Infos that store if they were used to define a name
 class HasDefiningInfo' si where
   semanticsDefining :: si -> Bool
@@ -71,8 +101,21 @@ instance HasDefiningInfo' CNameInfo where
   semanticsDefining = (^. cnameIsDefined)
 
-type HasModuleInfo dom = (Domain dom, HasModuleInfo' (SemanticInfo dom AST.Module))
+instance HasDefiningInfo dom => HasDefiningInfo' (Ann UQualifiedName dom st) where
+  semanticsDefining = semanticsDefining . (^. annotation&semanticInfo) 
 
+-- * Information about source info in sema
+
+class HasSourceInfoInSema' si where
+  semanticsSourceInfo :: si -> Maybe SrcSpan
+
+instance HasSourceInfoInSema' (NameInfo n) where
+  semanticsSourceInfo = (^? nameLocation)
+
+-- * Information about modules
+
+type HasModuleInfo dom = (Domain dom, HasModuleInfo' (SemanticInfo dom AST.UModule))
+
 class HasModuleInfo' si where
   semanticsModule :: si -> GHC.Module
   isBootModule :: si -> Bool
@@ -88,7 +131,14 @@   isBootModule = (^. defIsBootModule)
   semanticsImplicitImports = map idName . (^. implicitNames)
 
-type HasImportInfo dom = (Domain dom, HasImportInfo' (SemanticInfo dom AST.ImportDecl))
+instance HasModuleInfo dom => HasModuleInfo' (Ann UModule dom st) where
+  semanticsModule = semanticsModule . (^. annotation&semanticInfo) 
+  isBootModule = isBootModule . (^. annotation&semanticInfo) 
+  semanticsImplicitImports = semanticsImplicitImports . (^. annotation&semanticInfo) 
+
+-- * Information about imports
+
+type HasImportInfo dom = (Domain dom, HasImportInfo' (SemanticInfo dom AST.UImportDecl))
   
 class HasImportInfo' si where
   semanticsImportedModule :: si -> GHC.Module
@@ -105,10 +155,24 @@   semanticsAvailable = map idName . (^. availableNames)
   semanticsImported = map idName . (^. importedNames)
 
-type HasImplicitFieldsInfo dom = (Domain dom, HasImplicitFieldsInfo' (SemanticInfo dom AST.FieldWildcard))
+instance HasImportInfo dom => HasImportInfo' (Ann UImportDecl dom st) where
+  semanticsImportedModule = semanticsImportedModule . (^. annotation&semanticInfo) 
+  semanticsAvailable = semanticsAvailable . (^. annotation&semanticInfo) 
+  semanticsImported = semanticsImported . (^. annotation&semanticInfo) 
+
+-- * Information about implicitely bounded fields
+
+type HasImplicitFieldsInfo dom = (Domain dom, HasImplicitFieldsInfo' (SemanticInfo dom AST.UFieldWildcard))
   
 class HasImplicitFieldsInfo' si where
   semanticsImplicitFlds :: si -> [(GHC.Name, GHC.Name)]
 
 instance HasImplicitFieldsInfo' ImplicitFieldInfo where
   semanticsImplicitFlds = (^. implicitFieldBindings)
+
+instance HasImplicitFieldsInfo dom => HasImplicitFieldsInfo' (Ann UFieldWildcard dom st) where
+  semanticsImplicitFlds = semanticsImplicitFlds . (^. annotation&semanticInfo) 
+
+-- * AST elements with no information
+
+type HasNoSemanticInfo dom si = SemanticInfo dom si ~ NoSemanticInfo
Language/Haskell/Tools/AST/SemaInfoTypes.hs view
@@ -4,7 +4,19 @@            , FlexibleContexts
            , FlexibleInstances
            #-}
-module Language.Haskell.Tools.AST.SemaInfoTypes where
+module Language.Haskell.Tools.AST.SemaInfoTypes
+  ( -- types 
+    NoSemanticInfo, ScopeInfo, NameInfo, CNameInfo, ModuleInfo, ImportInfo, ImplicitFieldInfo
+  , Scope
+    -- references
+  , exprScopedLocals, nameScopedLocals, nameIsDefined, nameInfo, ambiguousName, nameLocation
+  , implicitName, cnameScopedLocals, cnameIsDefined, cnameInfo, cnameFixity
+  , defModuleName, defIsBootModule, implicitNames, importedModule, availableNames, importedNames
+  , implicitFieldBindings
+    -- creator functions
+  , mkNoSemanticInfo, mkScopeInfo, mkNameInfo, mkAmbiguousNameInfo, mkImplicitNameInfo, mkCNameInfo
+  , mkModuleInfo, mkImportInfo, mkImplicitFieldInfo
+  ) where
 
 import Name as GHC
 import BasicTypes as GHC
@@ -14,6 +26,7 @@ import RdrName as GHC
 import Outputable as GHC
 
+import Data.Maybe
 import Data.List
 import Data.Data
 
@@ -26,11 +39,18 @@ data NoSemanticInfo = NoSemanticInfo 
   deriving (Eq, Data)
 
+mkNoSemanticInfo :: NoSemanticInfo
+mkNoSemanticInfo = NoSemanticInfo
+
 -- | Info for expressions that tells which definitions are in scope
 data ScopeInfo = ScopeInfo { _exprScopedLocals :: Scope 
                            }
   deriving (Eq, Data)
 
+-- | Creates the information about the definitions in scope
+mkScopeInfo :: Scope -> ScopeInfo
+mkScopeInfo = ScopeInfo
+
 -- | Info corresponding to a name
 data NameInfo n = NameInfo { _nameScopedLocals :: Scope
                            , _nameIsDefined :: Bool
@@ -39,16 +59,28 @@                 | AmbiguousNameInfo { _nameScopedLocals :: Scope
                                     , _nameIsDefined :: Bool
                                     , _ambiguousName :: RdrName
-                                    , _ambiguousLocation :: SrcSpan
+                                    , _nameLocation :: SrcSpan
                                     }
                 | ImplicitNameInfo { _nameScopedLocals :: Scope
                                    , _nameIsDefined :: Bool
                                    , _implicitName :: String
-                                   , _implicitLocation :: SrcSpan
+                                   , _nameLocation :: SrcSpan
                                    }
 
   deriving (Eq, Data)
 
+-- | Creates semantic information for an unambiguous name
+mkNameInfo :: Scope -> Bool -> n -> NameInfo n
+mkNameInfo = NameInfo
+
+-- | Creates semantic information for a name that is ambiguous because the lack of type info
+mkAmbiguousNameInfo :: Scope -> Bool -> RdrName -> SrcSpan -> NameInfo n
+mkAmbiguousNameInfo = AmbiguousNameInfo
+
+-- | Creates semantic information for an implicit name
+mkImplicitNameInfo :: Scope -> Bool -> String -> SrcSpan -> NameInfo n
+mkImplicitNameInfo = ImplicitNameInfo
+
 -- | Info corresponding to a name that is correctly identified
 data CNameInfo = CNameInfo { _cnameScopedLocals :: Scope
                            , _cnameIsDefined :: Bool
@@ -57,6 +89,10 @@                            }
   deriving (Eq, Data)
 
+-- | Create a typed name semantic information
+mkCNameInfo :: Scope -> Bool -> Id -> Maybe GHC.Fixity -> CNameInfo
+mkCNameInfo = CNameInfo
+
 -- | Info for the module element
 data ModuleInfo n = ModuleInfo { _defModuleName :: GHC.Module 
                                , _defIsBootModule :: Bool -- ^ True if this module is created from a hs-boot file
@@ -64,6 +100,10 @@                                } 
   deriving (Eq, Data)
 
+-- | Creates semantic information for the module element
+mkModuleInfo :: GHC.Module -> Bool -> [n] -> ModuleInfo n
+mkModuleInfo = ModuleInfo
+
 -- | Info corresponding to an import declaration
 data ImportInfo n = ImportInfo { _importedModule :: GHC.Module -- ^ The name and package of the imported module
                                , _availableNames :: [n] -- ^ Names available from the imported module
@@ -71,11 +111,19 @@                                } 
   deriving (Eq, Data)
 
+-- | Creates semantic information for an import declaration
+mkImportInfo :: GHC.Module -> [n] -> [n] -> ImportInfo n
+mkImportInfo = ImportInfo
+
 -- | Info corresponding to an record-wildcard
 data ImplicitFieldInfo = ImplicitFieldInfo { _implicitFieldBindings :: [(Name, Name)] -- ^ The implicitely bounded names
                                            } 
   deriving (Eq, Data)
 
+-- | Creates semantic information for a wildcard field binding
+mkImplicitFieldInfo :: [(Name, Name)] -> ImplicitFieldInfo
+mkImplicitFieldInfo = ImplicitFieldInfo
+
 instance Show ScopeInfo where
   show (ScopeInfo locals) = "(ScopeInfo " ++ showSDocUnsafe (ppr locals) ++ ")"
 
@@ -107,11 +155,32 @@ makeReferences ''ImportInfo
 makeReferences ''ImplicitFieldInfo
 
--- | Semantic and source code related information for an AST node.
-data NodeInfo sema src 
-  = NodeInfo { _semanticInfo :: sema
-             , _sourceInfo :: src
-             }
-  deriving (Eq, Show, Data)
-             
-makeReferences ''NodeInfo+instance Functor NameInfo where
+  fmap f = nameInfo .- f
+
+instance Functor ModuleInfo where
+  fmap f = implicitNames .- map f
+
+instance Functor ImportInfo where
+  fmap f (ImportInfo mod avail imps) = ImportInfo mod (map f avail) (map f imps)
+
+instance Foldable NameInfo where
+  foldMap f si = maybe mempty f (si ^? nameInfo)
+
+instance Foldable ModuleInfo where
+  foldMap f si = foldMap f (si ^. implicitNames)
+
+instance Foldable ImportInfo where
+  foldMap f si = foldMap f ((si ^. availableNames) ++ (si ^. importedNames))
+
+instance Traversable NameInfo where
+  traverse f (NameInfo locals defined nameInfo) = NameInfo locals defined <$> f nameInfo
+  traverse f (AmbiguousNameInfo locals defined nameInfo span) = pure $ AmbiguousNameInfo locals defined nameInfo span
+  traverse f (ImplicitNameInfo locals defined nameInfo span) = pure $ ImplicitNameInfo locals defined nameInfo span
+
+instance Traversable ModuleInfo where
+  traverse f (ModuleInfo mod isboot imp) = ModuleInfo mod isboot <$> traverse f imp 
+
+instance Traversable ImportInfo where
+  traverse f (ImportInfo mod avail imps) = ImportInfo mod <$> traverse f avail <*> traverse f imps
+
− Language/Haskell/Tools/AST/Stmts.hs
@@ -1,38 +0,0 @@--- | Representation of Haskell statements (both do-notation and comprehensions)
-module Language.Haskell.Tools.AST.Stmts where
-
-import Language.Haskell.Tools.AST.Ann
-import Language.Haskell.Tools.AST.Base
-import Language.Haskell.Tools.AST.Patterns
-import {-# SOURCE #-} Language.Haskell.Tools.AST.Exprs (Expr, Cmd)
-import {-# SOURCE #-} Language.Haskell.Tools.AST.Binds (LocalBind)
-
--- | Normal monadic statements
-data Stmt' expr dom stage
-  = BindStmt { _stmtPattern :: Ann Pattern dom stage
-             , _stmtExpr :: Ann expr dom stage
-             } -- ^ Binding statement (@ x <- action @)
-  | ExprStmt { _stmtExpr :: Ann expr dom stage
-             } -- ^ Non-binding statement (@ action @)
-  | LetStmt  { _stmtBinds :: AnnList LocalBind dom stage
-             } -- ^ Let statement (@ let x = 3; y = 4 @)
-  | RecStmt  { _cmdStmtBinds :: AnnList (Stmt' expr) dom stage
-             } -- ^ A recursive binding statement with (@ rec b <- f a c; c <- f b a @)
-type Stmt = Stmt' Expr
-
--- | Body of a list comprehension: (@ | x <- [1..10] @)
-data ListCompBody dom stage
-  = ListCompBody { _compStmts :: AnnList CompStmt dom stage
-                 } 
-         
--- | List comprehension statement
-data CompStmt dom stage
-  = CompStmt   { _compStmt :: Ann Stmt dom stage
-               } -- ^ Normal monadic statement of a list comprehension
-  | ThenStmt   { _thenExpr :: Ann Expr dom stage
-               , _byExpr :: AnnMaybe Expr dom stage
-               } -- ^ Then statements by @TransformListComp@ (@ then sortWith by (x + y) @)
-  | GroupStmt  { _byExpr :: AnnMaybe Expr dom stage
-               , _usingExpr :: AnnMaybe Expr dom stage
-               } -- ^ Grouping statements by @TransformListComp@ (@ then group by (x + y) using groupWith @) 
-                 -- Note: either byExpr or usingExpr must have a value
− Language/Haskell/Tools/AST/TH.hs
@@ -1,41 +0,0 @@--- | Representation of Template Haskell AST elements
-module Language.Haskell.Tools.AST.TH where
-              
-import Language.Haskell.Tools.AST.Decls
-import Language.Haskell.Tools.AST.Binds
-import Language.Haskell.Tools.AST.Exprs
-import Language.Haskell.Tools.AST.Patterns
-import Language.Haskell.Tools.AST.Types
-import Language.Haskell.Tools.AST.Base
-import Language.Haskell.Tools.AST.Ann
-              
--- | A template haskell splice          
-data Splice dom stage
-  = IdSplice    { _spliceId :: Ann Name dom stage
-                } -- ^ A simple name splice: @$generateX@
-  | ParenSplice { _spliceExpr :: Ann Expr dom stage
-                } -- ^ A splice with parentheses: @$(generate input)@
-  
--- | Template haskell quasi-quotation: @[quoter|str]@  
-data QuasiQuote dom stage
-  = QuasiQuote { _qqExprName :: Ann Name dom stage
-               , _qqExprBody :: Ann QQString dom stage
-               } 
-        
--- | Template Haskell Quasi-quotation content
-data QQString dom stage
-  = QQString { _qqString :: String 
-             } 
-
-          
--- | Template Haskell bracket expressions
-data Bracket dom stage
-  = ExprBracket    { _bracketExpr :: Ann Expr dom stage
-                   } -- ^ Expression bracket (@ [| x + y |] @)
-  | PatternBracket { _bracketPattern :: Ann Pattern dom stage
-                   } -- ^ Pattern bracket (@ [| Point x y |] @)
-  | TypeBracket    { _bracketType :: Ann Type dom stage
-                   } -- ^ Pattern bracket (@ [| (Int,Int) |] @)
-  | DeclsBracket   { _bracketDecl :: AnnList Decl dom stage
-                   } -- ^ Declaration bracket (@ [| _f :: Int -> Int; f x = x*x |] @)
-            
− Language/Haskell/Tools/AST/TH.hs-boot
@@ -1,11 +0,0 @@-{-# LANGUAGE RoleAnnotations #-}
-module Language.Haskell.Tools.AST.TH where
-
-type role Splice nominal nominal
-data Splice dom stage
-
-type role QuasiQuote nominal nominal
-data QuasiQuote dom stage
-
-type role Bracket nominal nominal
-data Bracket dom stage
− Language/Haskell/Tools/AST/Types.hs
@@ -1,87 +0,0 @@--- | Representation of Haskell types
-module Language.Haskell.Tools.AST.Types where
-
-import Language.Haskell.Tools.AST.Ann
-import Language.Haskell.Tools.AST.Literals
-import Language.Haskell.Tools.AST.Base
-import Language.Haskell.Tools.AST.Kinds
-import {-# SOURCE #-} Language.Haskell.Tools.AST.TH
-
--- | Type variable declaration
-data TyVar dom stage
-  = TyVarDecl { _tyVarName :: Ann Name dom stage
-              , _tyVarKind :: AnnMaybe KindConstraint dom stage
-              }
-
--- | Haskell types
-data Type dom stage
-  = TyForall     { _typeBounded :: AnnList TyVar dom stage
-                 , _typeType :: Ann Type dom stage
-                 } -- ^ Forall types (@ forall x y . type @)
-  | TyCtx        { _typeCtx :: Ann Context dom stage
-                 , _typeType :: Ann Type dom stage
-                 } -- ^ Type with a context (@ forall x y . type @)
-  | TyFun        { _typeParam :: Ann Type dom stage
-                 , _typeResult :: Ann Type dom stage
-                 } -- ^ Function types (@ a -> b @)
-  | TyTuple      { _typeElements :: AnnList Type dom stage
-                 } -- ^ Tuple types (@ (a,b) @)
-  | TyUnbTuple   { _typeElements :: AnnList Type dom stage
-                 } -- ^ Unboxed tuple types (@ (#a,b#) @)
-  | TyList       { _typeElement :: Ann Type dom stage
-                 } -- ^ List type with special syntax (@ [a] @)
-  | TyParArray   { _typeElement :: Ann Type dom stage
-                 } -- ^ Parallel array type (@ [:a:] @)
-  | TyApp        { _typeCon :: Ann Type dom stage
-                 , _typeArg :: Ann Type dom stage
-                 } -- ^ Type application (@ F a @)
-  | TyVar        { _typeName :: Ann Name dom stage
-                 } -- ^ type variable or constructor (@ a @)
-  | TyParen      { _typeInner :: Ann Type dom stage
-                 } -- ^ type surrounded by parentheses (@ (T a) @)
-  | TyInfix      { _typeLeft :: Ann Type dom stage
-                 , _typeOperator :: Ann Operator dom stage
-                 , _typeRight :: Ann Type dom stage
-                 } -- ^ Infix type constructor (@ (a <: b) @)
-  | TyKinded     { _typeInner :: Ann Type dom stage
-                 , _typeKind :: Ann Kind dom stage
-                 } -- ^ Type with explicit kind signature (@ _a :: * @)
-  | TyPromoted   { _tpPromoted :: Ann (Promoted Type) dom stage
-                 } -- A promoted data type with @-XDataKinds@ (@ 3 @, @ Left @, @ 'Left @).
-  | TySplice     { _tsSplice :: Splice dom stage
-                 } -- ^ a Template Haskell splice type (@ $(genType) @).
-  | TyQuasiQuote { _typeQQ :: QuasiQuote dom stage
-                 } -- ^ a Template Haskell quasi-quote type (@ [quoter| ... ] @).
-  | TyBang       { _typeInner :: Ann Type dom stage
-                 } -- ^ Strict type marked with @!@.
-  | TyLazy       { _typeInner :: Ann Type dom stage
-                 } -- ^ Lazy type marked with @~@. (Should only be used if @Strict@ or @StrictData@ language extension is used)
-  | TyUnpack     { _typeInner :: Ann Type dom stage
-                 } -- ^ Strict type marked with UNPACK pragma. (Usually contains the bang mark.)
-  | TyNoUnpack   { _typeInner :: Ann Type dom stage
-                 } -- ^ Strict type marked with NOUNPACK pragma. (Usually contains the bang mark.)
-  | TyWildcard   -- ^ A wildcard type (@ _ @) with @-XPartialTypeSignatures@
-  | TyNamedWildc { _typeWildcardName :: Ann Name dom stage
-                 } -- ^ A named wildcard type (@ _t @) with @-XPartialTypeSignatures@
-
--- One or more assertions
-data Context dom stage
-  = ContextOne   { _contextAssertion :: Ann Assertion dom stage
-                 } -- ^ One assertion (@ C a => ... @)
-  | ContextMulti { _contextAssertions :: AnnList Assertion dom stage
-                 } -- ^ A set of assertions (@ (C1 a, C2 b) => ... @, but can be one: @ (C a) => ... @)
-
--- | A single assertion in the context
-data Assertion dom stage
-  = ClassAssert { _assertClsName :: Ann Name dom stage
-                , _assertTypes :: AnnList Type dom stage
-                } -- ^ Class assertion (@Cls x@)
-  | InfixAssert { _assertLhs :: Ann Type dom stage
-                , _assertOp :: Ann Operator dom stage
-                , _assertRhs :: Ann Type dom stage
-                } -- ^ Infix class assertion, also contains type equations (@ a ~ X y @)
-  | ImplicitAssert { _assertImplVar :: Ann Name dom stage
-                   , _assertImplType :: Ann Type dom stage
-                   } -- ^ Assertion for implicit parameter binding (@ ?cmp :: a -> a -> Bool @)
-                 
-                 
haskell-tools-ast.cabal view
@@ -1,5 +1,5 @@ name:                haskell-tools-ast
-version:             0.2.0.0
+version:             0.3.0.0
 synopsis:            Haskell AST for efficient tooling
 description:         A representation of a Haskell Syntax tree that contain source-related and semantic annotations. These annotations help developer tools to work with the defined program. The source information enables refactoring and program transformation tools to change the source code without losing the original format (layout, comments) of the source. Semantic information helps analyzing the program. The representation is different from the GHC's syntax tree. It contains information from all representations in GHC (different version of syntax trees, lexical and module-level information). The module is split up to put the representation of different language elements into different modules. Additionally, it contains the representation of semantic and source annotations, helper functions and generated instances for the representation of language elements. Because langauge elements may refer each other (there can be a pattern inside an expression in case of a pattern match and an expression inside a pattern if view patterns are enabled), we use hs-boot files to break up dependency cycles.
 
@@ -13,22 +13,29 @@ cabal-version:       >=1.10
 
 library
-  exposed-modules:     Language.Haskell.Tools.AST    
-                     , Language.Haskell.Tools.AST.Modules
-                     , Language.Haskell.Tools.AST.TH
-                     , Language.Haskell.Tools.AST.Decls
-                     , Language.Haskell.Tools.AST.Binds
-                     , Language.Haskell.Tools.AST.Exprs
-                     , Language.Haskell.Tools.AST.Stmts
-                     , Language.Haskell.Tools.AST.Patterns
-                     , Language.Haskell.Tools.AST.Types
-                     , Language.Haskell.Tools.AST.Kinds
-                     , Language.Haskell.Tools.AST.Literals
-                     , Language.Haskell.Tools.AST.Base
+  exposed-modules:     Language.Haskell.Tools.AST
+                     , Language.Haskell.Tools.AST.References
+                     , Language.Haskell.Tools.AST.Helpers
                      , Language.Haskell.Tools.AST.Ann
                      , Language.Haskell.Tools.AST.SemaInfoTypes
-                     , Language.Haskell.Tools.AST.SemaInfoClasses
-                   
+                     , Language.Haskell.Tools.AST.SemaInfoClasses 
+
+  other-modules:       Language.Haskell.Tools.AST.Representation.Modules
+                     , Language.Haskell.Tools.AST.Representation.TH
+                     , Language.Haskell.Tools.AST.Representation.Decls
+                     , Language.Haskell.Tools.AST.Representation.Binds
+                     , Language.Haskell.Tools.AST.Representation.Exprs
+                     , Language.Haskell.Tools.AST.Representation.Stmts
+                     , Language.Haskell.Tools.AST.Representation.Patterns
+                     , Language.Haskell.Tools.AST.Representation.Types
+                     , Language.Haskell.Tools.AST.Representation.Kinds
+                     , Language.Haskell.Tools.AST.Representation.Literals
+                     , Language.Haskell.Tools.AST.Representation.Names
+
+                     , Language.Haskell.Tools.AST.MakeASTReferences
+                     , Language.Haskell.Tools.AST.Utils.OrdSrcSpan
+                     , Language.Haskell.Tools.AST.Utils.GHCInstances
+
                      , Language.Haskell.Tools.AST.Instances
                      , Language.Haskell.Tools.AST.Instances.Eq
                      , Language.Haskell.Tools.AST.Instances.Show
@@ -38,15 +45,11 @@                      , Language.Haskell.Tools.AST.Instances.SourceInfoTraversal
                      , Language.Haskell.Tools.AST.TH.SemanticTraversal
                      , Language.Haskell.Tools.AST.TH.SourceInfoTraversal
-                     , Language.Haskell.Tools.AST.References
-                     , Language.Haskell.Tools.AST.Helpers
-                     , Language.Haskell.Tools.AST.Utils.OrdSrcSpan
-                     , Language.Haskell.Tools.AST.Utils.GHCInstances
                      
-  build-depends:       base                 >=4.9   && <5.0
-                     , ghc                  >=8.0   && <8.1
-                     , references           >=0.3.2 && <1.0
-                     , uniplate             >=1.6   && <2.0
-                     , mtl                  >=2.2   && <3.0
-                     , template-haskell     >=2.11  && <3.0
+  build-depends:       base             >= 4.9  && < 4.10
+                     , ghc              >= 8.0  && < 8.1
+                     , references       >= 0.3  && < 0.4
+                     , uniplate         >= 1.6  && < 1.7
+                     , mtl              >= 2.2  && < 2.3
+                     , template-haskell >= 2.11 && < 2.12
   default-language:    Haskell2010