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

Safe HaskellNone
LanguageHaskell2010

Language.Haskell.Tools.Rewrite.Create.Patterns

Description

Generation of pattern-level AST fragments for refactorings. The bindings defined here create a the annotated version of the AST constructor with the same name. For example, mkVarPat creates the annotated version of the VarPat AST constructor.

Synopsis

Documentation

mkVarPat :: Name -> Pattern Source #

Pattern name binding

mkLitPat :: Literal -> Pattern Source #

Literal pattern

mkInfixAppPat :: Pattern -> Operator -> Pattern -> Pattern Source #

Infix constructor application pattern ( a :+: b )

mkAppPat :: Name -> [Pattern] -> Pattern Source #

Constructor application pattern ( Point x y )

mkTuplePat :: [Pattern] -> Pattern Source #

Tuple pattern ( (x,y) )

mkUnboxTuplePat :: [Pattern] -> Pattern Source #

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

mkListPat :: [Pattern] -> Pattern Source #

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

mkParArrayPat :: [Pattern] -> Pattern Source #

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

mkParenPat :: Pattern -> Pattern Source #

Parenthesised patterns

mkRecPat :: Name -> [PatternField] -> Pattern Source #

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

mkAsPat :: Name -> Pattern -> Pattern Source #

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

mkWildPat :: Pattern Source #

Wildcard pattern: ( _ )

mkIrrefutablePat :: Pattern -> Pattern Source #

Irrefutable pattern ( ~(x:_) )

mkBangPat :: Pattern -> Pattern Source #

Bang pattern ( !x )

mkTypeSigPat :: Pattern -> Type -> Pattern Source #

Pattern with explicit type signature ( x :: Int )

mkViewPat :: Expr -> Pattern -> Pattern Source #

View pattern ( f -> Just 1 )

mkSplicePat :: Splice -> Pattern Source #

Splice patterns: $(generateX inp)

mkQuasiQuotePat :: QuasiQuote -> Pattern Source #

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

mkPatternField :: Name -> Pattern -> PatternField Source #

Named field pattern ( p = Point 3 2 )

mkFieldPunPattern :: Name -> PatternField Source #

Named field pun ( p )

mkFieldWildcardPattern :: PatternField Source #

Wildcard field pattern ( .. )