Safe Haskell | None |
---|---|
Language | Haskell2010 |
UPattern matching expression-level AST fragments for refactorings.
Synopsis
- pattern Var :: Name -> Expr
- pattern Lit :: Literal -> Expr
- pattern InfixApp :: Expr -> Operator -> Expr -> Expr
- pattern PrefixApp :: Operator -> Expr -> Expr
- pattern App :: Expr -> Expr -> Expr
- pattern Lambda :: PatternList -> Expr -> Expr
- pattern Let :: LocalBindList -> Expr -> Expr
- pattern If :: Expr -> Expr -> Expr -> Expr
- pattern MultiIf :: GuardedCaseRhsList -> Expr
- pattern Case :: Expr -> AltList -> Expr
- pattern Do :: StmtList -> Expr
- pattern MDo :: StmtList -> Expr
- pattern ParArrayComp :: Expr -> ListCompBodyList -> Expr
- pattern Tuple :: ExprList -> Expr
- pattern UnboxedTuple :: ExprList -> Expr
- pattern TupleSection :: TupSecElemList -> Expr
- pattern UnboxedTupleSection :: TupSecElemList -> Expr
- pattern List :: ExprList -> Expr
- pattern ParArray :: ExprList -> Expr
- pattern Paren :: Expr -> Expr
- pattern LeftSection :: Expr -> Operator -> Expr
- pattern RightSection :: Operator -> Expr -> Expr
- pattern RecCon :: Name -> FieldUpdateList -> Expr
- pattern RecUpdate :: Expr -> FieldUpdateList -> Expr
- pattern Enum :: Expr -> MaybeExpr -> MaybeExpr -> Expr
- pattern ParArrayEnum :: Expr -> MaybeExpr -> Expr -> Expr
- pattern ListComp :: Expr -> ListCompBodyList -> Expr
- pattern ParArrayListComp :: Expr -> ListCompBodyList -> Expr
- pattern TypeSig :: Expr -> Type -> Expr
- pattern ExplicitTypeApp :: Expr -> Type -> Expr
- pattern VarQuote :: Name -> Expr
- pattern TypeQuote :: Name -> Expr
- pattern BracketExpr :: Bracket -> Expr
- pattern SpliceExpr :: Splice -> Expr
- pattern QuasiQuoteExpr :: QuasiQuote -> Expr
- pattern ExprPragma :: ExprPragma -> Expr -> Expr
- pattern Proc :: Pattern -> Cmd -> Expr
- pattern ArrowApp :: Expr -> ArrowApp -> Expr -> Expr
- pattern LambdaCase :: AltList -> Expr
- pattern StaticPointer :: Expr -> Expr
- pattern NormalFieldUpdate :: Name -> Expr -> FieldUpdate
- pattern FieldPun :: Name -> FieldUpdate
- pattern FieldWildcard :: FieldWildcard -> FieldUpdate
- pattern TupSecPresent :: Expr -> TupSecElem
- pattern TupSecMissing :: TupSecElem
- pattern Alt :: Pattern -> CaseRhs -> MaybeLocalBinds -> Alt
- pattern CaseRhs :: Expr -> CaseRhs
- pattern GuardedCaseRhss :: GuardedCaseRhsList -> CaseRhs
- pattern GuardedCaseRhs :: RhsGuardList -> Expr -> GuardedCaseRhs
- pattern CorePragma :: String -> ExprPragma
- pattern SccPragma :: String -> ExprPragma
- pattern GeneratedPragma :: SourceRange -> ExprPragma
- pattern SourceRange :: String -> Integer -> Integer -> Integer -> Integer -> SourceRange
- pattern ArrowAppCmd :: Expr -> ArrowApp -> Expr -> Cmd
- pattern ArrowFormCmd :: Expr -> CmdList -> Cmd
- pattern AppCmd :: Cmd -> Expr -> Cmd
- pattern InfixCmd :: Cmd -> Name -> Cmd -> Cmd
- pattern LambdaCmd :: PatternList -> Cmd -> Cmd
- pattern ParenCmd :: Cmd -> Cmd
- pattern CaseCmd :: Expr -> CmdAltList -> Cmd
- pattern IfCmd :: Expr -> Cmd -> Cmd -> Cmd
- pattern LetCmd :: LocalBindList -> Cmd -> Cmd
- pattern DoCmd :: CmdStmtList -> Cmd
- pattern LeftAppl :: ArrowApp
- pattern RightAppl :: ArrowApp
- pattern LeftHighApp :: ArrowApp
- pattern RightHighApp :: ArrowApp
- pattern Hole :: Expr
Expressions
pattern InfixApp :: Expr -> Operator -> Expr -> Expr Source #
An infix operator application ( a + b
)
pattern MultiIf :: GuardedCaseRhsList -> Expr Source #
Multi way if expressions with MultiWayIf
extension ( if | guard1 -> expr1; guard2 -> expr2
)
pattern Case :: Expr -> AltList -> Expr Source #
Pattern matching expression ( case expr of pat1 -> expr1; pat2 -> expr2
)
pattern ParArrayComp :: Expr -> ListCompBodyList -> Expr Source #
pattern UnboxedTuple :: ExprList -> Expr Source #
Unboxed tuple expression ( (# e1, e2, e3 #)
)
pattern TupleSection :: TupSecElemList -> Expr Source #
Tuple section, enabled with TupleSections
( (a,,b)
). One of the elements must be missing.
pattern UnboxedTupleSection :: TupSecElemList -> Expr Source #
pattern RecCon :: Name -> FieldUpdateList -> Expr Source #
Record value construction: Point { x = 3, y = -2 }
pattern RecUpdate :: Expr -> FieldUpdateList -> Expr Source #
Record value update: p1 { x = 3, y = -2 }
pattern ParArrayEnum :: Expr -> MaybeExpr -> Expr -> Expr Source #
Parallel array enumeration ( [: 1,3 .. 10 :]
)
pattern ListComp :: Expr -> ListCompBodyList -> Expr Source #
List comprehension ( [ (x, y) | x <- xs | y <- ys ]
)
pattern ParArrayListComp :: Expr -> ListCompBodyList -> Expr Source #
Parallel array comprehensions [: (x, y) | x <- xs , y <- ys :]
enabled by ParallelArrays
pattern ExplicitTypeApp :: Expr -> Type -> Expr Source #
Explicit type application ( show @Integer (read "5")
)
pattern BracketExpr :: Bracket -> Expr Source #
Template haskell bracket expression
pattern SpliceExpr :: Splice -> Expr Source #
Template haskell splice expression, for example: $(gen a)
or $x
pattern QuasiQuoteExpr :: QuasiQuote -> Expr Source #
Template haskell quasi-quotation: [$quoter|str]
pattern ExprPragma :: ExprPragma -> Expr -> Expr Source #
Template haskell quasi-quotation: [$quoter|str]
pattern LambdaCase :: AltList -> Expr Source #
Lambda case ( case 0 -> 1; 1 -> 2
)
pattern StaticPointer :: Expr -> Expr Source #
Static pointer expression ( static e
). The inner expression must be closed (cannot have variables bound outside)
Field updates
pattern NormalFieldUpdate :: Name -> Expr -> FieldUpdate Source #
Update of a field ( x = 1
)
pattern FieldPun :: Name -> FieldUpdate Source #
Update the field to the value of the same name ( x
)
pattern FieldWildcard :: FieldWildcard -> FieldUpdate Source #
Update the fields of the bounded names to their values ( ..
). Must be the last initializer. Cannot be used in a record update expression.
Tuple sections
pattern TupSecPresent :: Expr -> TupSecElem Source #
An existing element in a tuple section
pattern TupSecMissing :: TupSecElem Source #
A missing element in a tuple section
Pattern matching and guards
pattern Alt :: Pattern -> CaseRhs -> MaybeLocalBinds -> Alt Source #
Clause of case expression ( Just x -> x + 1
)
pattern GuardedCaseRhss :: GuardedCaseRhsList -> CaseRhs Source #
Guarded right-hand sides of a pattern match ( | x == 1 -> 3; | otherwise -> 4
)
pattern GuardedCaseRhs :: RhsGuardList -> Expr -> GuardedCaseRhs Source #
A guarded right-hand side of pattern matches binding ( | x > 3 -> 2
)
Pragmas that can be applied to expressions
pattern CorePragma :: String -> ExprPragma Source #
A CORE
pragma for adding notes to expressions.
pattern SccPragma :: String -> ExprPragma Source #
An SCC
pragma for defining cost centers for profiling
pattern GeneratedPragma :: SourceRange -> ExprPragma Source #
pattern SourceRange :: String -> Integer -> Integer -> Integer -> Integer -> SourceRange Source #
In-AST source ranges (for generated pragmas)
Commands
pattern ArrowAppCmd :: Expr -> ArrowApp -> Expr -> Cmd Source #
An arrow application command ( f -< x + 1
)
pattern ArrowFormCmd :: Expr -> CmdList -> Cmd Source #
A form command ( (|untilA (increment -< x+y) (within 0.5 -< x)|)
)
pattern IfCmd :: Expr -> Cmd -> Cmd -> Cmd Source #
An if command ( if f x y then g -< x+1 else h -< y+2
)
pattern DoCmd :: CmdStmtList -> Cmd Source #
A local binding command ( let z = x+y
)
pattern LeftHighApp :: ArrowApp Source #
Left arrow high application: -<<
pattern RightHighApp :: ArrowApp Source #
Right arrow high application: >>-