language-haskell
Safe HaskellNone
LanguageHaskell2010

Language.Haskell.Abstract

Description

The abstract node types forming a standard Haskell 2010 module. Every node type has the kind TreeNodeKind.

Synopsis

Kinds

type TreeNodeKind = Language -> TreeNodeSubKind Source #

The kind of a tree node with four type parameters:

  • the language of the node itself
  • the language of the node's subtrees
  • the wrapper for the node's subtrees' subtrees
  • the wrapper for the node's subtrees

Class

class Haskell λ where Source #

An abstract finally-tagless specification of a Haskell 2010 language

Associated Types

type Module λ = (x :: TreeNodeSubKind) | x -> λ Source #

type Declaration λ = (x :: TreeNodeSubKind) | x -> λ Source #

type Expression λ = (x :: TreeNodeSubKind) | x -> λ Source #

type Type λ = (x :: TreeNodeSubKind) | x -> λ Source #

type EquationLHS λ = (x :: TreeNodeSubKind) | x -> λ Source #

type EquationRHS λ = (x :: TreeNodeSubKind) | x -> λ Source #

type GuardedExpression λ = (x :: TreeNodeSubKind) | x -> λ Source #

type Pattern λ = (x :: TreeNodeSubKind) | x -> λ Source #

type Statement λ = (x :: TreeNodeSubKind) | x -> λ Source #

type ClassInstanceLHS λ = (x :: TreeNodeSubKind) | x -> λ Source #

type TypeLHS λ = (x :: TreeNodeSubKind) | x -> λ Source #

type Import λ = (x :: TreeNodeSubKind) | x -> λ Source #

type ImportSpecification λ = (x :: TreeNodeSubKind) | x -> λ Source #

type ImportItem λ = (x :: TreeNodeSubKind) | x -> λ Source #

type Export λ = (x :: TreeNodeSubKind) | x -> λ Source #

type Context λ = (x :: TreeNodeSubKind) | x -> λ Source #

type DataConstructor λ = (x :: TreeNodeSubKind) | x -> λ Source #

type DerivingClause λ = (x :: TreeNodeSubKind) | x -> λ Source #

type FieldDeclaration λ = (x :: TreeNodeSubKind) | x -> λ Source #

type FieldBinding λ = (x :: TreeNodeSubKind) | x -> λ Source #

type FieldPattern λ = (x :: TreeNodeSubKind) | x -> λ Source #

type CaseAlternative λ = (x :: TreeNodeSubKind) | x -> λ Source #

type Constructor λ = (x :: TreeNodeSubKind) | x -> λ Source #

type Value λ = (x :: TreeNodeSubKind) | x -> λ Source #

type CallingConvention λ = (x :: Type) | x -> λ Source #

type CallSafety λ = (x :: Type) | x -> λ Source #

type Associativity λ = (x :: Type) | x -> λ Source #

type Members λ = (x :: Type) | x -> λ Source #

type Name λ = (x :: Type) | x -> λ Source #

type ModuleName λ = (x :: Type) | x -> λ Source #

type QualifiedName λ = (x :: Type) | x -> λ Source #

Methods

anonymousModule :: forall s l (d :: NodeWrap). [s (Import l l d d)] -> [s (Declaration l l d d)] -> Module λ l d s Source #

namedModule :: forall s l (d :: NodeWrap). ModuleName λ -> Maybe [s (Export l l d d)] -> [s (Import l l d d)] -> [s (Declaration l l d d)] -> Module λ l d s Source #

withLanguagePragma :: forall s l (d :: NodeWrap). [ExtensionSwitch] -> s (Module l l d d) -> Module λ l d s Source #

exportClassOrType :: forall l (d :: NodeWrap) (s :: NodeWrap). QualifiedName λ -> Maybe (Members λ) -> Export λ l d s Source #

exportVar :: forall l (d :: NodeWrap) (s :: NodeWrap). QualifiedName λ -> Export λ l d s Source #

reExportModule :: forall l (d :: NodeWrap) (s :: NodeWrap). ModuleName λ -> Export λ l d s Source #

importDeclaration :: forall s l (d :: NodeWrap). Bool -> ModuleName λ -> Maybe (ModuleName λ) -> Maybe (s (ImportSpecification l l d d)) -> Import λ l d s Source #

excludedImports :: forall s l (d :: NodeWrap). [s (ImportItem l l d d)] -> ImportSpecification λ l d s Source #

includedImports :: forall s l (d :: NodeWrap). [s (ImportItem l l d d)] -> ImportSpecification λ l d s Source #

importClassOrType :: forall l (d :: NodeWrap) (s :: NodeWrap). Name λ -> Maybe (Members λ) -> ImportItem λ l d s Source #

importVar :: forall l (d :: NodeWrap) (s :: NodeWrap). Name λ -> ImportItem λ l d s Source #

allMembers :: Members λ Source #

memberList :: [Name λ] -> Members λ Source #

classDeclaration :: forall s l (d :: NodeWrap). s (Context l l d d) -> s (TypeLHS l l d d) -> [s (Declaration l l d d)] -> Declaration λ l d s Source #

dataDeclaration :: forall s l (d :: NodeWrap). s (Context l l d d) -> s (TypeLHS l l d d) -> [s (DataConstructor l l d d)] -> [s (DerivingClause l l d d)] -> Declaration λ l d s Source #

defaultDeclaration :: forall s l (d :: NodeWrap). [s (Type l l d d)] -> Declaration λ l d s Source #

equationDeclaration :: forall s l (d :: NodeWrap). s (EquationLHS l l d d) -> s (EquationRHS l l d d) -> [s (Declaration l l d d)] -> Declaration λ l d s Source #

fixityDeclaration :: forall l (d :: NodeWrap) (s :: NodeWrap). Associativity λ -> Maybe Int -> NonEmpty (Name λ) -> Declaration λ l d s Source #

foreignExport :: forall s l (d :: NodeWrap). CallingConvention λ -> Maybe Text -> Name λ -> s (Type l l d d) -> Declaration λ l d s Source #

foreignImport :: forall s l (d :: NodeWrap). CallingConvention λ -> Maybe (CallSafety λ) -> Maybe Text -> Name λ -> s (Type l l d d) -> Declaration λ l d s Source #

instanceDeclaration :: forall s l (d :: NodeWrap). s (Context l l d d) -> s (ClassInstanceLHS l l d d) -> [s (Declaration l l d d)] -> Declaration λ l d s Source #

newtypeDeclaration :: forall s l (d :: NodeWrap). s (Context l l d d) -> s (TypeLHS l l d d) -> s (DataConstructor l l d d) -> [s (DerivingClause l l d d)] -> Declaration λ l d s Source #

typeSynonymDeclaration :: forall s l (d :: NodeWrap). s (TypeLHS l l d d) -> s (Type l l d d) -> Declaration λ l d s Source #

typeSignature :: forall s l (d :: NodeWrap). NonEmpty (Name λ) -> s (Context l l d d) -> s (Type l l d d) -> Declaration λ l d s Source #

applyExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> s (Expression l l d d) -> Expression λ l d s Source #

conditionalExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> s (Expression l l d d) -> s (Expression l l d d) -> Expression λ l d s Source #

constructorExpression :: forall s l (d :: NodeWrap). s (Constructor l l d d) -> Expression λ l d s Source #

caseExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> [s (CaseAlternative l l d d)] -> Expression λ l d s Source #

doExpression :: forall s l (d :: NodeWrap). s (GuardedExpression l l d d) -> Expression λ l d s Source #

infixExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> s (Expression l l d d) -> s (Expression l l d d) -> Expression λ l d s Source #

leftSectionExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> QualifiedName λ -> Expression λ l d s Source #

lambdaExpression :: forall s l (d :: NodeWrap). [s (Pattern l l d d)] -> s (Expression l l d d) -> Expression λ l d s Source #

letExpression :: forall s l (d :: NodeWrap). [s (Declaration l l d d)] -> s (Expression l l d d) -> Expression λ l d s Source #

listComprehension :: forall s l (d :: NodeWrap). s (Expression l l d d) -> NonEmpty (s (Statement l l d d)) -> Expression λ l d s Source #

listExpression :: forall s l (d :: NodeWrap). [s (Expression l l d d)] -> Expression λ l d s Source #

literalExpression :: forall s l (d :: NodeWrap). s (Value l l d d) -> Expression λ l d s Source #

negate :: forall l (d :: NodeWrap) (s :: NodeWrap). Expression λ l d s Source #

recordExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> [s (FieldBinding l l d d)] -> Expression λ l d s Source #

referenceExpression :: forall l (d :: NodeWrap). QualifiedName λ -> Expression λ l d d Source #

rightSectionExpression :: forall s l (d :: NodeWrap). QualifiedName λ -> s (Expression l l d d) -> Expression λ l d s Source #

sequenceExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> Maybe (s (Expression l l d d)) -> Maybe (s (Expression l l d d)) -> Expression λ l d s Source #

tupleExpression :: forall s l (d :: NodeWrap). NonEmpty (s (Expression l l d d)) -> Expression λ l d s Source #

typedExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> s (Type l l d d) -> Expression λ l d s Source #

asPattern :: forall s l (d :: NodeWrap). Name λ -> s (Pattern l l d d) -> Pattern λ l d s Source #

constructorPattern :: forall s l (d :: NodeWrap). s (Constructor l l d d) -> [s (Pattern l l d d)] -> Pattern λ l d s Source #

infixPattern :: forall s l (d :: NodeWrap). s (Pattern l l d d) -> QualifiedName λ -> s (Pattern l l d d) -> Pattern λ l d s Source #

irrefutablePattern :: forall s l (d :: NodeWrap). s (Pattern l l d d) -> Pattern λ l d s Source #

listPattern :: forall s l (d :: NodeWrap). [s (Pattern l l d d)] -> Pattern λ l d s Source #

literalPattern :: forall s l (d :: NodeWrap). s (Value l l d d) -> Pattern λ l d s Source #

recordPattern :: forall s l (d :: NodeWrap). QualifiedName λ -> [s (FieldPattern l l d d)] -> Pattern λ l d s Source #

tuplePattern :: forall s l (d :: NodeWrap). NonEmpty (s (Pattern l l d d)) -> Pattern λ l d s Source #

variablePattern :: forall l (d :: NodeWrap) (s :: NodeWrap). Name λ -> Pattern λ l d s Source #

wildcardPattern :: forall l (d :: NodeWrap) (s :: NodeWrap). Pattern λ l d s Source #

constructorType :: forall s l (d :: NodeWrap). s (Constructor l l d d) -> Type λ l d s Source #

functionConstructorType :: forall l (d :: NodeWrap) (s :: NodeWrap). Type λ l d s Source #

functionType :: forall s l (d :: NodeWrap). s (Type l l d d) -> s (Type l l d d) -> Type λ l d s Source #

listType :: forall s l (d :: NodeWrap). s (Type l l d d) -> Type λ l d s Source #

strictType :: forall s l (d :: NodeWrap). s (Type l l d d) -> Type λ l d s Source #

tupleType :: forall s l (d :: NodeWrap). NonEmpty (s (Type l l d d)) -> Type λ l d s Source #

typeApplication :: forall s l (d :: NodeWrap). s (Type l l d d) -> s (Type l l d d) -> Type λ l d s Source #

typeVariable :: forall l (d :: NodeWrap) (s :: NodeWrap). Name λ -> Type λ l d s Source #

constructorReference :: forall l (d :: NodeWrap) (s :: NodeWrap). QualifiedName λ -> Constructor λ l d s Source #

emptyListConstructor :: forall l (d :: NodeWrap) (s :: NodeWrap). Constructor λ l d s Source #

tupleConstructor :: forall l (d :: NodeWrap) (s :: NodeWrap). Int -> Constructor λ l d s Source #

unitConstructor :: forall l (d :: NodeWrap) (s :: NodeWrap). Constructor λ l d s Source #

constructor :: forall s l (d :: NodeWrap). Name λ -> [s (Type l l d d)] -> DataConstructor λ l d s Source #

recordConstructor :: forall s l (d :: NodeWrap). Name λ -> [s (FieldDeclaration l l d d)] -> DataConstructor λ l d s Source #

constructorFields :: forall s l (d :: NodeWrap). NonEmpty (Name λ) -> s (Type l l d d) -> FieldDeclaration λ l d s Source #

fieldBinding :: forall s l (d :: NodeWrap). QualifiedName λ -> s (Expression l l d d) -> FieldBinding λ l d s Source #

fieldPattern :: forall s l (d :: NodeWrap). QualifiedName λ -> s (Pattern l l d d) -> FieldPattern λ l d s Source #

simpleDerive :: forall l (d :: NodeWrap) (s :: NodeWrap). QualifiedName λ -> DerivingClause λ l d s Source #

typeClassInstanceLHS :: forall s l (d :: NodeWrap). QualifiedName λ -> s (Type l l d d) -> ClassInstanceLHS λ l d s Source #

simpleTypeLHS :: forall l (d :: NodeWrap) (s :: NodeWrap). Name λ -> [Name λ] -> TypeLHS λ l d s Source #

prefixLHS :: forall s l (d :: NodeWrap). s (EquationLHS l l d d) -> NonEmpty (s (Pattern l l d d)) -> EquationLHS λ l d s Source #

infixLHS :: forall s l (d :: NodeWrap). s (Pattern l l d d) -> Name λ -> s (Pattern l l d d) -> EquationLHS λ l d s Source #

patternLHS :: forall s l (d :: NodeWrap). s (Pattern l l d d) -> EquationLHS λ l d s Source #

variableLHS :: forall l (d :: NodeWrap) (s :: NodeWrap). Name λ -> EquationLHS λ l d s Source #

caseAlternative :: forall s l (d :: NodeWrap). s (Pattern l l d d) -> s (EquationRHS l l d d) -> [s (Declaration l l d d)] -> CaseAlternative λ l d s Source #

guardedRHS :: forall s l (d :: NodeWrap). NonEmpty (s (GuardedExpression l l d d)) -> EquationRHS λ l d s Source #

normalRHS :: forall s l (d :: NodeWrap). s (Expression l l d d) -> EquationRHS λ l d s Source #

guardedExpression :: forall s l (d :: NodeWrap). [s (Statement l l d d)] -> s (Expression l l d d) -> GuardedExpression λ l d s Source #

classConstraint :: forall s l (d :: NodeWrap). QualifiedName λ -> s (Type l l d d) -> Context λ l d s Source #

constraints :: forall s l (d :: NodeWrap). [s (Context l l d d)] -> Context λ l d s Source #

noContext :: forall l (d :: NodeWrap) (s :: NodeWrap). Context λ l d s Source #

bindStatement :: forall s l (d :: NodeWrap). s (Pattern l l d d) -> s (Expression l l d d) -> Statement λ l d s Source #

expressionStatement :: forall s l (d :: NodeWrap). s (Expression l l d d) -> Statement λ l d s Source #

letStatement :: forall s l (d :: NodeWrap). [s (Declaration l l d d)] -> Statement λ l d s Source #

charLiteral :: forall l (d :: NodeWrap) (s :: NodeWrap). Char -> Value λ l d s Source #

floatingLiteral :: forall l (d :: NodeWrap) (s :: NodeWrap). Rational -> Value λ l d s Source #

integerLiteral :: forall l (d :: NodeWrap) (s :: NodeWrap). Integer -> Value λ l d s Source #

stringLiteral :: forall l (d :: NodeWrap) (s :: NodeWrap). Text -> Value λ l d s Source #

name :: Text -> Name λ Source #

moduleName :: NonEmpty (Name λ) -> ModuleName λ Source #

qualifiedName :: Maybe (ModuleName λ) -> Name λ -> QualifiedName λ Source #

nonAssociative :: Associativity λ Source #

leftAssociative :: Associativity λ Source #

rightAssociative :: Associativity λ Source #

cCall :: CallingConvention λ Source #

cppCall :: CallingConvention λ Source #

dotNetCall :: CallingConvention λ Source #

jvmCall :: CallingConvention λ Source #

stdCall :: CallingConvention λ Source #

safeCall :: CallSafety λ Source #

unsafeCall :: CallSafety λ Source #

Instances

Instances details
Haskell Language Source # 
Instance details

Defined in Language.Haskell.AST

Associated Types

type Module Language 
Instance details

Defined in Language.Haskell.AST

type Declaration Language 
Instance details

Defined in Language.Haskell.AST

type Expression Language 
Instance details

Defined in Language.Haskell.AST

type Type Language 
Instance details

Defined in Language.Haskell.AST

type EquationLHS Language 
Instance details

Defined in Language.Haskell.AST

type EquationRHS Language 
Instance details

Defined in Language.Haskell.AST

type GuardedExpression Language 
Instance details

Defined in Language.Haskell.AST

type Pattern Language 
Instance details

Defined in Language.Haskell.AST

type Statement Language 
Instance details

Defined in Language.Haskell.AST

type ClassInstanceLHS Language 
Instance details

Defined in Language.Haskell.AST

type TypeLHS Language 
Instance details

Defined in Language.Haskell.AST

type Import Language 
Instance details

Defined in Language.Haskell.AST

type ImportSpecification Language 
Instance details

Defined in Language.Haskell.AST

type ImportItem Language 
Instance details

Defined in Language.Haskell.AST

type Export Language 
Instance details

Defined in Language.Haskell.AST

type Context Language 
Instance details

Defined in Language.Haskell.AST

type DataConstructor Language 
Instance details

Defined in Language.Haskell.AST

type DerivingClause Language 
Instance details

Defined in Language.Haskell.AST

type FieldDeclaration Language 
Instance details

Defined in Language.Haskell.AST

type FieldBinding Language 
Instance details

Defined in Language.Haskell.AST

type FieldPattern Language 
Instance details

Defined in Language.Haskell.AST

type CaseAlternative Language 
Instance details

Defined in Language.Haskell.AST

type Constructor Language 
Instance details

Defined in Language.Haskell.AST

type Value Language 
Instance details

Defined in Language.Haskell.AST

type CallingConvention Language 
Instance details

Defined in Language.Haskell.AST

type CallSafety Language 
Instance details

Defined in Language.Haskell.AST

type Associativity Language 
Instance details

Defined in Language.Haskell.AST

type Members Language 
Instance details

Defined in Language.Haskell.AST

type Name Language 
Instance details

Defined in Language.Haskell.AST

type ModuleName Language 
Instance details

Defined in Language.Haskell.AST

type QualifiedName Language 
Instance details

Defined in Language.Haskell.AST

Methods

anonymousModule :: forall s l (d :: NodeWrap). [s (Import l l d d)] -> [s (Declaration l l d d)] -> Module Language l d s Source #

namedModule :: forall s l (d :: NodeWrap). ModuleName Language -> Maybe [s (Export l l d d)] -> [s (Import l l d d)] -> [s (Declaration l l d d)] -> Module Language l d s Source #

withLanguagePragma :: forall s l (d :: NodeWrap). [ExtensionSwitch] -> s (Module l l d d) -> Module Language l d s Source #

exportClassOrType :: forall l (d :: NodeWrap) (s :: NodeWrap). QualifiedName Language -> Maybe (Members Language) -> Export Language l d s Source #

exportVar :: forall l (d :: NodeWrap) (s :: NodeWrap). QualifiedName Language -> Export Language l d s Source #

reExportModule :: forall l (d :: NodeWrap) (s :: NodeWrap). ModuleName Language -> Export Language l d s Source #

importDeclaration :: forall s l (d :: NodeWrap). Bool -> ModuleName Language -> Maybe (ModuleName Language) -> Maybe (s (ImportSpecification l l d d)) -> Import Language l d s Source #

excludedImports :: forall s l (d :: NodeWrap). [s (ImportItem l l d d)] -> ImportSpecification Language l d s Source #

includedImports :: forall s l (d :: NodeWrap). [s (ImportItem l l d d)] -> ImportSpecification Language l d s Source #

importClassOrType :: forall l (d :: NodeWrap) (s :: NodeWrap). Name Language -> Maybe (Members Language) -> ImportItem Language l d s Source #

importVar :: forall l (d :: NodeWrap) (s :: NodeWrap). Name Language -> ImportItem Language l d s Source #

allMembers :: Members Language Source #

memberList :: [Name Language] -> Members Language Source #

classDeclaration :: forall s l (d :: NodeWrap). s (Context l l d d) -> s (TypeLHS l l d d) -> [s (Declaration l l d d)] -> Declaration Language l d s Source #

dataDeclaration :: forall s l (d :: NodeWrap). s (Context l l d d) -> s (TypeLHS l l d d) -> [s (DataConstructor l l d d)] -> [s (DerivingClause l l d d)] -> Declaration Language l d s Source #

defaultDeclaration :: forall s l (d :: NodeWrap). [s (Type l l d d)] -> Declaration Language l d s Source #

equationDeclaration :: forall s l (d :: NodeWrap). s (EquationLHS l l d d) -> s (EquationRHS l l d d) -> [s (Declaration l l d d)] -> Declaration Language l d s Source #

fixityDeclaration :: forall l (d :: NodeWrap) (s :: NodeWrap). Associativity Language -> Maybe Int -> NonEmpty (Name Language) -> Declaration Language l d s Source #

foreignExport :: forall s l (d :: NodeWrap). CallingConvention Language -> Maybe Text -> Name Language -> s (Type l l d d) -> Declaration Language l d s Source #

foreignImport :: forall s l (d :: NodeWrap). CallingConvention Language -> Maybe (CallSafety Language) -> Maybe Text -> Name Language -> s (Type l l d d) -> Declaration Language l d s Source #

instanceDeclaration :: forall s l (d :: NodeWrap). s (Context l l d d) -> s (ClassInstanceLHS l l d d) -> [s (Declaration l l d d)] -> Declaration Language l d s Source #

newtypeDeclaration :: forall s l (d :: NodeWrap). s (Context l l d d) -> s (TypeLHS l l d d) -> s (DataConstructor l l d d) -> [s (DerivingClause l l d d)] -> Declaration Language l d s Source #

typeSynonymDeclaration :: forall s l (d :: NodeWrap). s (TypeLHS l l d d) -> s (Type l l d d) -> Declaration Language l d s Source #

typeSignature :: forall s l (d :: NodeWrap). NonEmpty (Name Language) -> s (Context l l d d) -> s (Type l l d d) -> Declaration Language l d s Source #

applyExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> s (Expression l l d d) -> Expression Language l d s Source #

conditionalExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> s (Expression l l d d) -> s (Expression l l d d) -> Expression Language l d s Source #

constructorExpression :: forall s l (d :: NodeWrap). s (Constructor l l d d) -> Expression Language l d s Source #

caseExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> [s (CaseAlternative l l d d)] -> Expression Language l d s Source #

doExpression :: forall s l (d :: NodeWrap). s (GuardedExpression l l d d) -> Expression Language l d s Source #

infixExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> s (Expression l l d d) -> s (Expression l l d d) -> Expression Language l d s Source #

leftSectionExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> QualifiedName Language -> Expression Language l d s Source #

lambdaExpression :: forall s l (d :: NodeWrap). [s (Pattern l l d d)] -> s (Expression l l d d) -> Expression Language l d s Source #

letExpression :: forall s l (d :: NodeWrap). [s (Declaration l l d d)] -> s (Expression l l d d) -> Expression Language l d s Source #

listComprehension :: forall s l (d :: NodeWrap). s (Expression l l d d) -> NonEmpty (s (Statement l l d d)) -> Expression Language l d s Source #

listExpression :: forall s l (d :: NodeWrap). [s (Expression l l d d)] -> Expression Language l d s Source #

literalExpression :: forall s l (d :: NodeWrap). s (Value l l d d) -> Expression Language l d s Source #

negate :: forall l (d :: NodeWrap) (s :: NodeWrap). Expression Language l d s Source #

recordExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> [s (FieldBinding l l d d)] -> Expression Language l d s Source #

referenceExpression :: forall l (d :: NodeWrap). QualifiedName Language -> Expression Language l d d Source #

rightSectionExpression :: forall s l (d :: NodeWrap). QualifiedName Language -> s (Expression l l d d) -> Expression Language l d s Source #

sequenceExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> Maybe (s (Expression l l d d)) -> Maybe (s (Expression l l d d)) -> Expression Language l d s Source #

tupleExpression :: forall s l (d :: NodeWrap). NonEmpty (s (Expression l l d d)) -> Expression Language l d s Source #

typedExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> s (Type l l d d) -> Expression Language l d s Source #

asPattern :: forall s l (d :: NodeWrap). Name Language -> s (Pattern l l d d) -> Pattern Language l d s Source #

constructorPattern :: forall s l (d :: NodeWrap). s (Constructor l l d d) -> [s (Pattern l l d d)] -> Pattern Language l d s Source #

infixPattern :: forall s l (d :: NodeWrap). s (Pattern l l d d) -> QualifiedName Language -> s (Pattern l l d d) -> Pattern Language l d s Source #

irrefutablePattern :: forall s l (d :: NodeWrap). s (Pattern l l d d) -> Pattern Language l d s Source #

listPattern :: forall s l (d :: NodeWrap). [s (Pattern l l d d)] -> Pattern Language l d s Source #

literalPattern :: forall s l (d :: NodeWrap). s (Value l l d d) -> Pattern Language l d s Source #

recordPattern :: forall s l (d :: NodeWrap). QualifiedName Language -> [s (FieldPattern l l d d)] -> Pattern Language l d s Source #

tuplePattern :: forall s l (d :: NodeWrap). NonEmpty (s (Pattern l l d d)) -> Pattern Language l d s Source #

variablePattern :: forall l (d :: NodeWrap) (s :: NodeWrap). Name Language -> Pattern Language l d s Source #

wildcardPattern :: forall l (d :: NodeWrap) (s :: NodeWrap). Pattern Language l d s Source #

constructorType :: forall s l (d :: NodeWrap). s (Constructor l l d d) -> Type Language l d s Source #

functionConstructorType :: forall l (d :: NodeWrap) (s :: NodeWrap). Type Language l d s Source #

functionType :: forall s l (d :: NodeWrap). s (Type l l d d) -> s (Type l l d d) -> Type Language l d s Source #

listType :: forall s l (d :: NodeWrap). s (Type l l d d) -> Type Language l d s Source #

strictType :: forall s l (d :: NodeWrap). s (Type l l d d) -> Type Language l d s Source #

tupleType :: forall s l (d :: NodeWrap). NonEmpty (s (Type l l d d)) -> Type Language l d s Source #

typeApplication :: forall s l (d :: NodeWrap). s (Type l l d d) -> s (Type l l d d) -> Type Language l d s Source #

typeVariable :: forall l (d :: NodeWrap) (s :: NodeWrap). Name Language -> Type Language l d s Source #

constructorReference :: forall l (d :: NodeWrap) (s :: NodeWrap). QualifiedName Language -> Constructor Language l d s Source #

emptyListConstructor :: forall l (d :: NodeWrap) (s :: NodeWrap). Constructor Language l d s Source #

tupleConstructor :: forall l (d :: NodeWrap) (s :: NodeWrap). Int -> Constructor Language l d s Source #

unitConstructor :: forall l (d :: NodeWrap) (s :: NodeWrap). Constructor Language l d s Source #

constructor :: forall s l (d :: NodeWrap). Name Language -> [s (Type l l d d)] -> DataConstructor Language l d s Source #

recordConstructor :: forall s l (d :: NodeWrap). Name Language -> [s (FieldDeclaration l l d d)] -> DataConstructor Language l d s Source #

constructorFields :: forall s l (d :: NodeWrap). NonEmpty (Name Language) -> s (Type l l d d) -> FieldDeclaration Language l d s Source #

fieldBinding :: forall s l (d :: NodeWrap). QualifiedName Language -> s (Expression l l d d) -> FieldBinding Language l d s Source #

fieldPattern :: forall s l (d :: NodeWrap). QualifiedName Language -> s (Pattern l l d d) -> FieldPattern Language l d s Source #

simpleDerive :: forall l (d :: NodeWrap) (s :: NodeWrap). QualifiedName Language -> DerivingClause Language l d s Source #

typeClassInstanceLHS :: forall s l (d :: NodeWrap). QualifiedName Language -> s (Type l l d d) -> ClassInstanceLHS Language l d s Source #

simpleTypeLHS :: forall l (d :: NodeWrap) (s :: NodeWrap). Name Language -> [Name Language] -> TypeLHS Language l d s Source #

prefixLHS :: forall s l (d :: NodeWrap). s (EquationLHS l l d d) -> NonEmpty (s (Pattern l l d d)) -> EquationLHS Language l d s Source #

infixLHS :: forall s l (d :: NodeWrap). s (Pattern l l d d) -> Name Language -> s (Pattern l l d d) -> EquationLHS Language l d s Source #

patternLHS :: forall s l (d :: NodeWrap). s (Pattern l l d d) -> EquationLHS Language l d s Source #

variableLHS :: forall l (d :: NodeWrap) (s :: NodeWrap). Name Language -> EquationLHS Language l d s Source #

caseAlternative :: forall s l (d :: NodeWrap). s (Pattern l l d d) -> s (EquationRHS l l d d) -> [s (Declaration l l d d)] -> CaseAlternative Language l d s Source #

guardedRHS :: forall s l (d :: NodeWrap). NonEmpty (s (GuardedExpression l l d d)) -> EquationRHS Language l d s Source #

normalRHS :: forall s l (d :: NodeWrap). s (Expression l l d d) -> EquationRHS Language l d s Source #

guardedExpression :: forall s l (d :: NodeWrap). [s (Statement l l d d)] -> s (Expression l l d d) -> GuardedExpression Language l d s Source #

classConstraint :: forall s l (d :: NodeWrap). QualifiedName Language -> s (Type l l d d) -> Context Language l d s Source #

constraints :: forall s l (d :: NodeWrap). [s (Context l l d d)] -> Context Language l d s Source #

noContext :: forall l (d :: NodeWrap) (s :: NodeWrap). Context Language l d s Source #

bindStatement :: forall s l (d :: NodeWrap). s (Pattern l l d d) -> s (Expression l l d d) -> Statement Language l d s Source #

expressionStatement :: forall s l (d :: NodeWrap). s (Expression l l d d) -> Statement Language l d s Source #

letStatement :: forall s l (d :: NodeWrap). [s (Declaration l l d d)] -> Statement Language l d s Source #

charLiteral :: forall l (d :: NodeWrap) (s :: NodeWrap). Char -> Value Language l d s Source #

floatingLiteral :: forall l (d :: NodeWrap) (s :: NodeWrap). Rational -> Value Language l d s Source #

integerLiteral :: forall l (d :: NodeWrap) (s :: NodeWrap). Integer -> Value Language l d s Source #

stringLiteral :: forall l (d :: NodeWrap) (s :: NodeWrap). Text -> Value Language l d s Source #

name :: Text -> Name Language Source #

moduleName :: NonEmpty (Name Language) -> ModuleName Language Source #

qualifiedName :: Maybe (ModuleName Language) -> Name Language -> QualifiedName Language Source #

nonAssociative :: Associativity Language Source #

leftAssociative :: Associativity Language Source #

rightAssociative :: Associativity Language Source #

cCall :: CallingConvention Language Source #

cppCall :: CallingConvention Language Source #

dotNetCall :: CallingConvention Language Source #

jvmCall :: CallingConvention Language Source #

stdCall :: CallingConvention Language Source #

safeCall :: CallSafety Language Source #

unsafeCall :: CallSafety Language Source #

Haskell Language Source # 
Instance details

Defined in Language.Haskell.Extensions.AST

Associated Types

type Module Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type Declaration Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type Expression Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type Type Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type EquationLHS Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type EquationRHS Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type GuardedExpression Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type Pattern Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type Statement Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type ClassInstanceLHS Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type TypeLHS Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type Import Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type ImportSpecification Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type ImportItem Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type Export Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type Context Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type DataConstructor Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type DerivingClause Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type FieldDeclaration Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type FieldBinding Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type FieldPattern Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type CaseAlternative Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type Constructor Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type Value Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type CallingConvention Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type CallSafety Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type Associativity Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type Members Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type Name Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type ModuleName Language 
Instance details

Defined in Language.Haskell.Extensions.AST

type QualifiedName Language 
Instance details

Defined in Language.Haskell.Extensions.AST

Methods

anonymousModule :: forall s l (d :: NodeWrap). [s (Import l l d d)] -> [s (Declaration l l d d)] -> Module Language l d s Source #

namedModule :: forall s l (d :: NodeWrap). ModuleName Language -> Maybe [s (Export l l d d)] -> [s (Import l l d d)] -> [s (Declaration l l d d)] -> Module Language l d s Source #

withLanguagePragma :: forall s l (d :: NodeWrap). [ExtensionSwitch] -> s (Module l l d d) -> Module Language l d s Source #

exportClassOrType :: forall l (d :: NodeWrap) (s :: NodeWrap). QualifiedName Language -> Maybe (Members Language) -> Export Language l d s Source #

exportVar :: forall l (d :: NodeWrap) (s :: NodeWrap). QualifiedName Language -> Export Language l d s Source #

reExportModule :: forall l (d :: NodeWrap) (s :: NodeWrap). ModuleName Language -> Export Language l d s Source #

importDeclaration :: forall s l (d :: NodeWrap). Bool -> ModuleName Language -> Maybe (ModuleName Language) -> Maybe (s (ImportSpecification l l d d)) -> Import Language l d s Source #

excludedImports :: forall s l (d :: NodeWrap). [s (ImportItem l l d d)] -> ImportSpecification Language l d s Source #

includedImports :: forall s l (d :: NodeWrap). [s (ImportItem l l d d)] -> ImportSpecification Language l d s Source #

importClassOrType :: forall l (d :: NodeWrap) (s :: NodeWrap). Name Language -> Maybe (Members Language) -> ImportItem Language l d s Source #

importVar :: forall l (d :: NodeWrap) (s :: NodeWrap). Name Language -> ImportItem Language l d s Source #

allMembers :: Members Language Source #

memberList :: [Name Language] -> Members Language Source #

classDeclaration :: forall s l (d :: NodeWrap). s (Context l l d d) -> s (TypeLHS l l d d) -> [s (Declaration l l d d)] -> Declaration Language l d s Source #

dataDeclaration :: forall s l (d :: NodeWrap). s (Context l l d d) -> s (TypeLHS l l d d) -> [s (DataConstructor l l d d)] -> [s (DerivingClause l l d d)] -> Declaration Language l d s Source #

defaultDeclaration :: forall s l (d :: NodeWrap). [s (Type l l d d)] -> Declaration Language l d s Source #

equationDeclaration :: forall s l (d :: NodeWrap). s (EquationLHS l l d d) -> s (EquationRHS l l d d) -> [s (Declaration l l d d)] -> Declaration Language l d s Source #

fixityDeclaration :: forall l (d :: NodeWrap) (s :: NodeWrap). Associativity Language -> Maybe Int -> NonEmpty (Name Language) -> Declaration Language l d s Source #

foreignExport :: forall s l (d :: NodeWrap). CallingConvention Language -> Maybe Text -> Name Language -> s (Type l l d d) -> Declaration Language l d s Source #

foreignImport :: forall s l (d :: NodeWrap). CallingConvention Language -> Maybe (CallSafety Language) -> Maybe Text -> Name Language -> s (Type l l d d) -> Declaration Language l d s Source #

instanceDeclaration :: forall s l (d :: NodeWrap). s (Context l l d d) -> s (ClassInstanceLHS l l d d) -> [s (Declaration l l d d)] -> Declaration Language l d s Source #

newtypeDeclaration :: forall s l (d :: NodeWrap). s (Context l l d d) -> s (TypeLHS l l d d) -> s (DataConstructor l l d d) -> [s (DerivingClause l l d d)] -> Declaration Language l d s Source #

typeSynonymDeclaration :: forall s l (d :: NodeWrap). s (TypeLHS l l d d) -> s (Type l l d d) -> Declaration Language l d s Source #

typeSignature :: forall s l (d :: NodeWrap). NonEmpty (Name Language) -> s (Context l l d d) -> s (Type l l d d) -> Declaration Language l d s Source #

applyExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> s (Expression l l d d) -> Expression Language l d s Source #

conditionalExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> s (Expression l l d d) -> s (Expression l l d d) -> Expression Language l d s Source #

constructorExpression :: forall s l (d :: NodeWrap). s (Constructor l l d d) -> Expression Language l d s Source #

caseExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> [s (CaseAlternative l l d d)] -> Expression Language l d s Source #

doExpression :: forall s l (d :: NodeWrap). s (GuardedExpression l l d d) -> Expression Language l d s Source #

infixExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> s (Expression l l d d) -> s (Expression l l d d) -> Expression Language l d s Source #

leftSectionExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> QualifiedName Language -> Expression Language l d s Source #

lambdaExpression :: forall s l (d :: NodeWrap). [s (Pattern l l d d)] -> s (Expression l l d d) -> Expression Language l d s Source #

letExpression :: forall s l (d :: NodeWrap). [s (Declaration l l d d)] -> s (Expression l l d d) -> Expression Language l d s Source #

listComprehension :: forall s l (d :: NodeWrap). s (Expression l l d d) -> NonEmpty (s (Statement l l d d)) -> Expression Language l d s Source #

listExpression :: forall s l (d :: NodeWrap). [s (Expression l l d d)] -> Expression Language l d s Source #

literalExpression :: forall s l (d :: NodeWrap). s (Value l l d d) -> Expression Language l d s Source #

negate :: forall l (d :: NodeWrap) (s :: NodeWrap). Expression Language l d s Source #

recordExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> [s (FieldBinding l l d d)] -> Expression Language l d s Source #

referenceExpression :: forall l (d :: NodeWrap). QualifiedName Language -> Expression Language l d d Source #

rightSectionExpression :: forall s l (d :: NodeWrap). QualifiedName Language -> s (Expression l l d d) -> Expression Language l d s Source #

sequenceExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> Maybe (s (Expression l l d d)) -> Maybe (s (Expression l l d d)) -> Expression Language l d s Source #

tupleExpression :: forall s l (d :: NodeWrap). NonEmpty (s (Expression l l d d)) -> Expression Language l d s Source #

typedExpression :: forall s l (d :: NodeWrap). s (Expression l l d d) -> s (Type l l d d) -> Expression Language l d s Source #

asPattern :: forall s l (d :: NodeWrap). Name Language -> s (Pattern l l d d) -> Pattern Language l d s Source #

constructorPattern :: forall s l (d :: NodeWrap). s (Constructor l l d d) -> [s (Pattern l l d d)] -> Pattern Language l d s Source #

infixPattern :: forall s l (d :: NodeWrap). s (Pattern l l d d) -> QualifiedName Language -> s (Pattern l l d d) -> Pattern Language l d s Source #

irrefutablePattern :: forall s l (d :: NodeWrap). s (Pattern l l d d) -> Pattern Language l d s Source #

listPattern :: forall s l (d :: NodeWrap). [s (Pattern l l d d)] -> Pattern Language l d s Source #

literalPattern :: forall s l (d :: NodeWrap). s (Value l l d d) -> Pattern Language l d s Source #

recordPattern :: forall s l (d :: NodeWrap). QualifiedName Language -> [s (FieldPattern l l d d)] -> Pattern Language l d s Source #

tuplePattern :: forall s l (d :: NodeWrap). NonEmpty (s (Pattern l l d d)) -> Pattern Language l d s Source #

variablePattern :: forall l (d :: NodeWrap) (s :: NodeWrap). Name Language -> Pattern Language l d s Source #

wildcardPattern :: forall l (d :: NodeWrap) (s :: NodeWrap). Pattern Language l d s Source #

constructorType :: forall s l (d :: NodeWrap). s (Constructor l l d d) -> Type Language l d s Source #

functionConstructorType :: forall l (d :: NodeWrap) (s :: NodeWrap). Type Language l d s Source #

functionType :: forall s l (d :: NodeWrap). s (Type l l d d) -> s (Type l l d d) -> Type Language l d s Source #

listType :: forall s l (d :: NodeWrap). s (Type l l d d) -> Type Language l d s Source #

strictType :: forall s l (d :: NodeWrap). s (Type l l d d) -> Type Language l d s Source #

tupleType :: forall s l (d :: NodeWrap). NonEmpty (s (Type l l d d)) -> Type Language l d s Source #

typeApplication :: forall s l (d :: NodeWrap). s (Type l l d d) -> s (Type l l d d) -> Type Language l d s Source #

typeVariable :: forall l (d :: NodeWrap) (s :: NodeWrap). Name Language -> Type Language l d s Source #

constructorReference :: forall l (d :: NodeWrap) (s :: NodeWrap). QualifiedName Language -> Constructor Language l d s Source #

emptyListConstructor :: forall l (d :: NodeWrap) (s :: NodeWrap). Constructor Language l d s Source #

tupleConstructor :: forall l (d :: NodeWrap) (s :: NodeWrap). Int -> Constructor Language l d s Source #

unitConstructor :: forall l (d :: NodeWrap) (s :: NodeWrap). Constructor Language l d s Source #

constructor :: forall s l (d :: NodeWrap). Name Language -> [s (Type l l d d)] -> DataConstructor Language l d s Source #

recordConstructor :: forall s l (d :: NodeWrap). Name Language -> [s (FieldDeclaration l l d d)] -> DataConstructor Language l d s Source #

constructorFields :: forall s l (d :: NodeWrap). NonEmpty (Name Language) -> s (Type l l d d) -> FieldDeclaration Language l d s Source #

fieldBinding :: forall s l (d :: NodeWrap). QualifiedName Language -> s (Expression l l d d) -> FieldBinding Language l d s Source #

fieldPattern :: forall s l (d :: NodeWrap). QualifiedName Language -> s (Pattern l l d d) -> FieldPattern Language l d s Source #

simpleDerive :: forall l (d :: NodeWrap) (s :: NodeWrap). QualifiedName Language -> DerivingClause Language l d s Source #

typeClassInstanceLHS :: forall s l (d :: NodeWrap). QualifiedName Language -> s (Type l l d d) -> ClassInstanceLHS Language l d s Source #

simpleTypeLHS :: forall l (d :: NodeWrap) (s :: NodeWrap). Name Language -> [Name Language] -> TypeLHS Language l d s Source #

prefixLHS :: forall s l (d :: NodeWrap). s (EquationLHS l l d d) -> NonEmpty (s (Pattern l l d d)) -> EquationLHS Language l d s Source #

infixLHS :: forall s l (d :: NodeWrap). s (Pattern l l d d) -> Name Language -> s (Pattern l l d d) -> EquationLHS Language l d s Source #

patternLHS :: forall s l (d :: NodeWrap). s (Pattern l l d d) -> EquationLHS Language l d s Source #

variableLHS :: forall l (d :: NodeWrap) (s :: NodeWrap). Name Language -> EquationLHS Language l d s Source #

caseAlternative :: forall s l (d :: NodeWrap). s (Pattern l l d d) -> s (EquationRHS l l d d) -> [s (Declaration l l d d)] -> CaseAlternative Language l d s Source #

guardedRHS :: forall s l (d :: NodeWrap). NonEmpty (s (GuardedExpression l l d d)) -> EquationRHS Language l d s Source #

normalRHS :: forall s l (d :: NodeWrap). s (Expression l l d d) -> EquationRHS Language l d s Source #

guardedExpression :: forall s l (d :: NodeWrap). [s (Statement l l d d)] -> s (Expression l l d d) -> GuardedExpression Language l d s Source #

classConstraint :: forall s l (d :: NodeWrap). QualifiedName Language -> s (Type l l d d) -> Context Language l d s Source #

constraints :: forall s l (d :: NodeWrap). [s (Context l l d d)] -> Context Language l d s Source #

noContext :: forall l (d :: NodeWrap) (s :: NodeWrap). Context Language l d s Source #

bindStatement :: forall s l (d :: NodeWrap). s (Pattern l l d d) -> s (Expression l l d d) -> Statement Language l d s Source #

expressionStatement :: forall s l (d :: NodeWrap). s (Expression l l d d) -> Statement Language l d s Source #

letStatement :: forall s l (d :: NodeWrap). [s (Declaration l l d d)] -> Statement Language l d s Source #

charLiteral :: forall l (d :: NodeWrap) (s :: NodeWrap). Char -> Value Language l d s Source #

floatingLiteral :: forall l (d :: NodeWrap) (s :: NodeWrap). Rational -> Value Language l d s Source #

integerLiteral :: forall l (d :: NodeWrap) (s :: NodeWrap). Integer -> Value Language l d s Source #

stringLiteral :: forall l (d :: NodeWrap) (s :: NodeWrap). Text -> Value Language l d s Source #

name :: Text -> Name Language Source #

moduleName :: NonEmpty (Name Language) -> ModuleName Language Source #

qualifiedName :: Maybe (ModuleName Language) -> Name Language -> QualifiedName Language Source #

nonAssociative :: Associativity Language Source #

leftAssociative :: Associativity Language Source #

rightAssociative :: Associativity Language Source #

cCall :: CallingConvention Language Source #

cppCall :: CallingConvention Language Source #

dotNetCall :: CallingConvention Language Source #

jvmCall :: CallingConvention Language Source #

stdCall :: CallingConvention Language Source #

safeCall :: CallSafety Language Source #

unsafeCall :: CallSafety Language Source #

Constraint synonyms

type DeeplyFunctor t l = (Functor t (Module l l), Functor t (Declaration l l), Functor t (Expression l l), Functor t (Type l l), Functor t (EquationLHS l l), Functor t (EquationRHS l l), Functor t (GuardedExpression l l), Functor t (Pattern l l), Functor t (Statement l l), Functor t (ClassInstanceLHS l l), Functor t (TypeLHS l l), Functor t (Import l l), Functor t (ImportSpecification l l), Functor t (ImportItem l l), Functor t (Export l l), Functor t (Context l l), Functor t (DataConstructor l l), Functor t (DerivingClause l l), Functor t (FieldDeclaration l l), Functor t (FieldBinding l l), Functor t (FieldPattern l l), Functor t (CaseAlternative l l), Functor t (Constructor l l), Functor t (Value l l)) Source #

Named collection of constraints DeeplyFunctor t l means that every AST node of language l is a Functor for transformation t.

type DeeplyFoldable t l = (Foldable t (Module l l), Foldable t (Declaration l l), Foldable t (Expression l l), Foldable t (Type l l), Foldable t (EquationLHS l l), Foldable t (EquationRHS l l), Foldable t (GuardedExpression l l), Foldable t (Pattern l l), Foldable t (Statement l l), Foldable t (ClassInstanceLHS l l), Foldable t (TypeLHS l l), Foldable t (Import l l), Foldable t (ImportSpecification l l), Foldable t (ImportItem l l), Foldable t (Export l l), Foldable t (Context l l), Foldable t (DataConstructor l l), Foldable t (DerivingClause l l), Foldable t (FieldDeclaration l l), Foldable t (FieldBinding l l), Foldable t (FieldPattern l l), Foldable t (CaseAlternative l l), Foldable t (Constructor l l), Foldable t (Value l l)) Source #

Named collection of constraints DeeplyFoldable t l means that every AST node of language l is Foldable for transformation t.

type DeeplyTraversable t l = (Traversable t (Module l l), Traversable t (Declaration l l), Traversable t (Expression l l), Traversable t (Type l l), Traversable t (EquationLHS l l), Traversable t (EquationRHS l l), Traversable t (GuardedExpression l l), Traversable t (Pattern l l), Traversable t (Statement l l), Traversable t (ClassInstanceLHS l l), Traversable t (TypeLHS l l), Traversable t (Import l l), Traversable t (ImportSpecification l l), Traversable t (ImportItem l l), Traversable t (Export l l), Traversable t (Context l l), Traversable t (DataConstructor l l), Traversable t (DerivingClause l l), Traversable t (FieldDeclaration l l), Traversable t (FieldBinding l l), Traversable t (FieldPattern l l), Traversable t (CaseAlternative l l), Traversable t (Constructor l l), Traversable t (Value l l)) Source #

Named collection of constraints DeeplyTraversable t l means that every AST node of language l is Traversable for transformation t.

type Rank2lyFunctor l (f :: NodeWrap) = (Functor (Module l l f), Functor (Declaration l l f), Functor (Expression l l f), Functor (Type l l f), Functor (EquationLHS l l f), Functor (EquationRHS l l f), Functor (GuardedExpression l l f), Functor (Pattern l l f), Functor (Statement l l f), Functor (ClassInstanceLHS l l f), Functor (TypeLHS l l f), Functor (Import l l f), Functor (ImportSpecification l l f), Functor (ImportItem l l f), Functor (Export l l f), Functor (Context l l f), Functor (DataConstructor l l f), Functor (DerivingClause l l f), Functor (FieldDeclaration l l f), Functor (FieldBinding l l f), Functor (FieldPattern l l f), Functor (CaseAlternative l l f), Functor (Constructor l l f), Functor (Value l l f)) Source #

Named collection of constraints Rank2lyFunctor l f means that every AST node of language l with subtrees wrapped in f is a Functor.

type Rank2lyFoldable l (f :: NodeWrap) = (Foldable (Module l l f), Foldable (Declaration l l f), Foldable (Expression l l f), Foldable (Type l l f), Foldable (EquationLHS l l f), Foldable (EquationRHS l l f), Foldable (GuardedExpression l l f), Foldable (Pattern l l f), Foldable (Statement l l f), Foldable (ClassInstanceLHS l l f), Foldable (TypeLHS l l f), Foldable (Import l l f), Foldable (ImportSpecification l l f), Foldable (ImportItem l l f), Foldable (Export l l f), Foldable (Context l l f), Foldable (DataConstructor l l f), Foldable (DerivingClause l l f), Foldable (FieldDeclaration l l f), Foldable (FieldBinding l l f), Foldable (FieldPattern l l f), Foldable (CaseAlternative l l f), Foldable (Constructor l l f), Foldable (Value l l f)) Source #

Named collection of constraints Rank2lyFoldable l f means that every AST node of language l with subtrees wrapped in f is Foldable.

type Rank2lyTraversable l (f :: NodeWrap) = (Traversable (Module l l f), Traversable (Declaration l l f), Traversable (Expression l l f), Traversable (Type l l f), Traversable (EquationLHS l l f), Traversable (EquationRHS l l f), Traversable (GuardedExpression l l f), Traversable (Pattern l l f), Traversable (Statement l l f), Traversable (ClassInstanceLHS l l f), Traversable (TypeLHS l l f), Traversable (Import l l f), Traversable (ImportSpecification l l f), Traversable (ImportItem l l f), Traversable (Export l l f), Traversable (Context l l f), Traversable (DataConstructor l l f), Traversable (DerivingClause l l f), Traversable (FieldDeclaration l l f), Traversable (FieldBinding l l f), Traversable (FieldPattern l l f), Traversable (CaseAlternative l l f), Traversable (Constructor l l f), Traversable (Value l l f)) Source #

Named collection of constraints Rank2lyTraversable l f means that every AST node of language l with subtrees wrapped in f is Traversable.

type UniversallyApplicable t l (d :: NodeWrap) = (At t (Module l l d d), At t (Declaration l l d d), At t (Expression l l d d), At t (Type l l d d), At t (EquationLHS l l d d), At t (EquationRHS l l d d), At t (GuardedExpression l l d d), At t (Pattern l l d d), At t (Statement l l d d), At t (ClassInstanceLHS l l d d), At t (TypeLHS l l d d), At t (Import l l d d), At t (ImportSpecification l l d d), At t (ImportItem l l d d), At t (Export l l d d), At t (Context l l d d), At t (DataConstructor l l d d), At t (DerivingClause l l d d), At t (FieldDeclaration l l d d), At t (FieldBinding l l d d), At t (FieldPattern l l d d), At t (CaseAlternative l l d d), At t (Constructor l l d d), At t (Value l l d d)) Source #

Constraint UniversallyApplicable t l d means that the transformation t can be applied to any AST node of language l with subtrees wrapped in d.