haskell-tools-ast-0.2.0.0: Haskell AST for efficient tooling

Safe HaskellNone
LanguageHaskell2010

Language.Haskell.Tools.AST.Patterns

Description

Representation of Haskell patterns

Synopsis

Documentation

data Pattern dom stage Source #

Representation of patterns for pattern bindings

Constructors

VarPat

Pattern name binding

Fields

LitPat

Literal pattern

Fields

InfixPat

Infix constructor application pattern ( a :+: b )

Fields

AppPat

Constructor application pattern ( Point x y )

Fields

TuplePat

Tuple pattern ( (x,y) )

Fields

UnboxTuplePat

Unboxed tuple pattern ( () )

Fields

ListPat

List pattern ( [1,2,a,x] )

Fields

ParArrPat

Parallel array pattern ( [:1,2,a,x:] )

Fields

ParenPat

Parenthesised patterns

Fields

RecPat

Record pattern ( Point { x = 3, y } )

Fields

AsPat

As-pattern (explicit name binding) ( ls@(hd:_) )

Fields

WildPat

Wildcard pattern: ( _ )

IrrPat

Irrefutable pattern ( ~(x:_) )

Fields

BangPat

Bang pattern ( !x )

Fields

TypeSigPat

Pattern with explicit type signature ( __ :: Int )

Fields

ViewPat

View pattern ( f -> Just 1 ) regular list pattern omitted xml patterns omitted

Fields

SplicePat

Splice patterns: $(generateX inp)

Fields

QuasiQuotePat

Quasi-quoted patterns: [| 1 + 2 |]

Fields

NPlusKPat 

Fields

Instances

type Rep (Pattern dom stage) Source # 
type Rep (Pattern dom stage) = D1 (MetaData "Pattern" "Language.Haskell.Tools.AST.Patterns" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) ((:+:) ((:+:) ((:+:) ((:+:) (C1 (MetaCons "VarPat" PrefixI True) (S1 (MetaSel (Just Symbol "_patternName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Name dom stage)))) (C1 (MetaCons "LitPat" PrefixI True) (S1 (MetaSel (Just Symbol "_patternLiteral") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Literal dom stage))))) ((:+:) (C1 (MetaCons "InfixPat" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "_patternLhs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Pattern dom stage))) ((:*:) (S1 (MetaSel (Just Symbol "_patternOperator") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Operator dom stage))) (S1 (MetaSel (Just Symbol "_patternRhs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Pattern dom stage)))))) (C1 (MetaCons "AppPat" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "_patternName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Name dom stage))) (S1 (MetaSel (Just Symbol "_patternArgs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnList Pattern dom stage))))))) ((:+:) ((:+:) (C1 (MetaCons "TuplePat" PrefixI True) (S1 (MetaSel (Just Symbol "_patternElems") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnList Pattern dom stage)))) (C1 (MetaCons "UnboxTuplePat" PrefixI True) (S1 (MetaSel (Just Symbol "_patternElems") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnList Pattern dom stage))))) ((:+:) (C1 (MetaCons "ListPat" PrefixI True) (S1 (MetaSel (Just Symbol "_patternElems") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnList Pattern dom stage)))) ((:+:) (C1 (MetaCons "ParArrPat" PrefixI True) (S1 (MetaSel (Just Symbol "_patternElems") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnList Pattern dom stage)))) (C1 (MetaCons "ParenPat" PrefixI True) (S1 (MetaSel (Just Symbol "_patternInner") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Pattern dom stage)))))))) ((:+:) ((:+:) ((:+:) (C1 (MetaCons "RecPat" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "_patternName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Name dom stage))) (S1 (MetaSel (Just Symbol "_patternFields") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnList PatternField dom stage))))) (C1 (MetaCons "AsPat" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "_patternName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Name dom stage))) (S1 (MetaSel (Just Symbol "_patternInner") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Pattern dom stage)))))) ((:+:) (C1 (MetaCons "WildPat" PrefixI False) U1) ((:+:) (C1 (MetaCons "IrrPat" PrefixI True) (S1 (MetaSel (Just Symbol "_patternInner") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Pattern dom stage)))) (C1 (MetaCons "BangPat" PrefixI True) (S1 (MetaSel (Just Symbol "_patternInner") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Pattern dom stage))))))) ((:+:) ((:+:) (C1 (MetaCons "TypeSigPat" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "_patternInner") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Pattern dom stage))) (S1 (MetaSel (Just Symbol "_patternType") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Type dom stage))))) (C1 (MetaCons "ViewPat" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "_patternExpr") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Expr dom stage))) (S1 (MetaSel (Just Symbol "_patternInner") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Pattern dom stage)))))) ((:+:) (C1 (MetaCons "SplicePat" PrefixI True) (S1 (MetaSel (Just Symbol "_patternSplice") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Splice dom stage)))) ((:+:) (C1 (MetaCons "QuasiQuotePat" PrefixI True) (S1 (MetaSel (Just Symbol "_patQQ") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann QuasiQuote dom stage)))) (C1 (MetaCons "NPlusKPat" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "_patternName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Name dom stage))) (S1 (MetaSel (Just Symbol "_patternLit") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Literal dom stage))))))))))

data PatternField dom stage Source #

Constructors

NormalFieldPattern

Named field pattern ( p = Point 3 2 )

Fields

FieldPunPattern

Named field pun ( p )

Fields

FieldWildcardPattern

Wildcard field pattern ( .. )

Instances

type Rep (PatternField dom stage) Source # 
type Rep (PatternField dom stage) = D1 (MetaData "PatternField" "Language.Haskell.Tools.AST.Patterns" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) ((:+:) (C1 (MetaCons "NormalFieldPattern" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "_fieldPatternName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Name dom stage))) (S1 (MetaSel (Just Symbol "_fieldPattern") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Pattern dom stage))))) ((:+:) (C1 (MetaCons "FieldPunPattern" PrefixI True) (S1 (MetaSel (Just Symbol "_fieldPatternName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Name dom stage)))) (C1 (MetaCons "FieldWildcardPattern" PrefixI True) (S1 (MetaSel (Just Symbol "_fieldPatternWildcard") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann FieldWildcard dom stage))))))