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

Safe HaskellNone
LanguageHaskell2010

Language.Haskell.Tools.Rewrite.Match.Patterns

Description

UPattern matching on pattern-level AST fragments for refactorings.

Synopsis

Documentation

pattern VarPat :: Name -> Pattern Source #

Pattern name binding

pattern LitPat :: Literal -> Pattern Source #

Literal pattern

pattern InfixAppPat :: Pattern -> Operator -> Pattern -> Pattern Source #

Infix constructor application pattern ( a :+: b )

pattern AppPat :: Name -> PatternList -> Pattern Source #

Constructor application pattern ( Point x y )

pattern TuplePat :: PatternList -> Pattern Source #

Tuple pattern ( (x,y) )

pattern UnboxTuplePat :: PatternList -> Pattern Source #

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

pattern ListPat :: PatternList -> Pattern Source #

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

pattern ParArrayPat :: PatternList -> Pattern Source #

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

pattern ParenPat :: Pattern -> Pattern Source #

Parenthesised patterns

pattern RecPat :: Name -> PatternFieldList -> Pattern Source #

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

pattern AsPat :: Name -> Pattern -> Pattern Source #

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

pattern WildPat :: Pattern Source #

Wildcard pattern: ( _ )

pattern IrrefutablePat :: Pattern -> Pattern Source #

Irrefutable pattern ( ~(x:_) )

pattern BangPat :: Pattern -> Pattern Source #

Bang pattern ( !x )

pattern TypeSigPat :: Pattern -> Type -> Pattern Source #

Pattern with explicit type signature ( x :: Int )

pattern ViewPat :: Expr -> Pattern -> Pattern Source #

View pattern ( f -> Just 1 )

pattern SplicePat :: Splice -> Pattern Source #

Splice patterns: $(generateX inp)

pattern QuasiQuotePat :: QuasiQuote -> Pattern Source #

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

pattern FieldPattern :: Name -> Pattern -> PatternField Source #

Named field pattern ( p = Point 3 2 )

pattern FieldPunPattern :: Name -> PatternField Source #

Named field pun ( p )

pattern FieldWildcardPattern :: FieldWildcard -> PatternField Source #

Wildcard field pattern ( .. )