Safe Haskell | None |
---|---|
Language | Haskell2010 |
UPattern matching on binding-level AST fragments for refactorings.
Synopsis
- pattern SimpleBind :: Pattern -> Rhs -> MaybeLocalBinds -> ValueBind
- pattern FunctionBind :: MatchList -> ValueBind
- pattern Match :: MatchLhs -> Rhs -> MaybeLocalBinds -> Match
- pattern MatchLhs :: Name -> PatternList -> MatchLhs
- pattern InfixLhs :: Pattern -> Operator -> Pattern -> PatternList -> MatchLhs
- pattern LocalBinds :: LocalBindList -> LocalBinds
- pattern LocalValBind :: ValueBind -> LocalBind
- pattern LocalTypeSig :: TypeSignature -> LocalBind
- pattern LocalFixity :: FixitySignature -> LocalBind
- pattern TypeSignature :: NameList -> Type -> TypeSignature
- pattern InfixL :: OperatorList -> FixitySignature
- pattern InfixR :: OperatorList -> FixitySignature
- pattern Infix :: OperatorList -> FixitySignature
- pattern UnguardedRhs :: Expr -> Rhs
- pattern GuardedRhss :: GuardedRhsList -> Rhs
- pattern GuardedRhs :: RhsGuardList -> Expr -> GuardedRhs
- pattern GuardBind :: Pattern -> Expr -> RhsGuard
- pattern GuardLet :: LocalBindList -> RhsGuard
- pattern GuardCheck :: Expr -> RhsGuard
Documentation
pattern SimpleBind :: Pattern -> Rhs -> MaybeLocalBinds -> ValueBind Source #
Non-function binding ( v = "12"
)
pattern FunctionBind :: MatchList -> ValueBind Source #
Function binding ( f 0 = 1; f x = x
). All matches must have the same name.
pattern MatchLhs :: Name -> PatternList -> MatchLhs Source #
A match lhs with the function name and parameter names ( f a b
)
pattern InfixLhs :: Pattern -> Operator -> Pattern -> PatternList -> MatchLhs Source #
An infix match lhs for an operator ( a + b
)
pattern LocalBinds :: LocalBindList -> LocalBinds Source #
Local bindings attached to a declaration ( where x = 42
)
pattern LocalValBind :: ValueBind -> LocalBind Source #
A local binding for a value
pattern LocalTypeSig :: TypeSignature -> LocalBind Source #
A local type signature
pattern LocalFixity :: FixitySignature -> LocalBind Source #
A local fixity declaration
pattern TypeSignature :: NameList -> Type -> TypeSignature Source #
A type signature ( f :: Int -> Int
)
pattern InfixL :: OperatorList -> FixitySignature Source #
A left-associative fixity declaration ( infixl 5 +, -
).
pattern InfixR :: OperatorList -> FixitySignature Source #
A right-associative fixity declaration ( infixr 5 +, -
).
pattern Infix :: OperatorList -> FixitySignature Source #
A non-associative fixity declaration ( infix 5 +, -
).
pattern UnguardedRhs :: Expr -> Rhs Source #
An unguarded right-hand-side ( = 3
)
pattern GuardedRhss :: GuardedRhsList -> Rhs Source #
An unguarded right-hand-side ( | x == 1 = 3; | otherwise = 4
)
pattern GuardedRhs :: RhsGuardList -> Expr -> GuardedRhs Source #
A guarded right-hand side of a value binding ( | x > 3 = 2
)
pattern GuardBind :: Pattern -> Expr -> RhsGuard Source #
A bind statement in a pattern guard ( Just v <- x
)
pattern GuardLet :: LocalBindList -> RhsGuard Source #
A let statement in a pattern guard ( let x = 3
)
pattern GuardCheck :: Expr -> RhsGuard Source #
An expression to check for a pattern guard