haskell-tools-rewrite-0.7.0.0: Facilities for generating new parts of the Haskell-Tools AST

Safe HaskellNone
LanguageHaskell2010

Language.Haskell.Tools.AST.Match.Patterns

Description

UPattern matching on pattern-level AST fragments for refactorings.

Synopsis

Documentation

pattern VarPat :: forall dom. Name dom -> Pattern dom Source #

Pattern name binding

pattern LitPat :: forall dom. Literal dom -> Pattern dom Source #

Literal pattern

pattern InfixAppPat :: forall dom. Pattern dom -> Operator dom -> Pattern dom -> Pattern dom Source #

Infix constructor application pattern ( a :+: b )

pattern AppPat :: forall dom. Name dom -> PatternList dom -> Pattern dom Source #

Constructor application pattern ( Point x y )

pattern TuplePat :: forall dom. PatternList dom -> Pattern dom Source #

Tuple pattern ( (x,y) )

pattern UnboxTuplePat :: forall dom. PatternList dom -> Pattern dom Source #

Unboxed tuple pattern ( (# x, y #) )

pattern ListPat :: forall dom. PatternList dom -> Pattern dom Source #

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

pattern ParArrayPat :: forall dom. PatternList dom -> Pattern dom Source #

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

pattern ParenPat :: forall dom. Pattern dom -> Pattern dom Source #

Parenthesised patterns

pattern RecPat :: forall dom. Name dom -> PatternFieldList dom -> Pattern dom Source #

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

pattern AsPat :: forall dom. Name dom -> Pattern dom -> Pattern dom Source #

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

pattern WildPat :: forall dom. Pattern dom Source #

Wildcard pattern: ( _ )

pattern IrrefutablePat :: forall dom. Pattern dom -> Pattern dom Source #

Irrefutable pattern ( ~(x:_) )

pattern BangPat :: forall dom. Pattern dom -> Pattern dom Source #

Bang pattern ( !x )

pattern TypeSigPat :: forall dom. Pattern dom -> Type dom -> Pattern dom Source #

Pattern with explicit type signature ( x :: Int )

pattern ViewPat :: forall dom. Expr dom -> Pattern dom -> Pattern dom Source #

View pattern ( f -> Just 1 )

pattern SplicePat :: forall dom. Splice dom -> Pattern dom Source #

Splice patterns: $(generateX inp)

pattern QuasiQuotePat :: forall dom. QuasiQuote dom -> Pattern dom Source #

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

pattern NPlusKPat :: forall dom. Name dom -> Literal dom -> Pattern dom Source #

pattern FieldPattern :: forall dom. Name dom -> Pattern dom -> PatternField dom Source #

Named field pattern ( p = Point 3 2 )

pattern FieldPunPattern :: forall dom. Name dom -> PatternField dom Source #

Named field pun ( p )

pattern FieldWildcardPattern :: forall dom. FieldWildcard dom -> PatternField dom Source #

Wildcard field pattern ( .. )