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.Binds

Description

UPattern matching on binding-level AST fragments for refactorings.

Synopsis

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 Match :: MatchLhs -> Rhs -> MaybeLocalBinds -> Match Source #

Clause of function binding

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