Similar to traverseLambda but with an additional pos argument to track position.
Equations
- Lean.Meta.traverseLambdaWithPos f p e = Lean.Meta.traverseLambdaWithPos.visit f #[] p e
Similar to traverseForall but with an additional pos argument to track position.
Equations
- Lean.Meta.traverseForallWithPos f p e = Lean.Meta.traverseForallWithPos.visit f #[] p e
Similar to traverseLet but with an additional pos argument to track position.
Equations
- Lean.Meta.traverseLetWithPos f p e = Lean.Meta.traverseLetWithPos.visit f #[] p e
Similar to Lean.Meta.traverseChildren except that visit also includes a Pos argument so you can
track the subexpression position.
Equations
- One or more equations did not get rendered due to their size.
Given an expression fun (x₁ : α₁) ... (xₙ : αₙ) => b, will run
f on each of the variable types αᵢ and b with the correct MetaM context,
replacing each expression with the output of f and creating a new lambda.
(that is, correctly instantiating bound variables and repackaging them after)
Equations
- Lean.Meta.traverseLambda visit = Lean.Meta.forgetPos Lean.Meta.traverseLambdaWithPos visit
Given an expression (x₁ : α₁) → ... → (xₙ : αₙ) → b, will run
f on each of the variable types αᵢ and b with the correct MetaM context,
replacing the expression with the output of f and creating a new forall expression.
(that is, correctly instantiating bound variables and repackaging them after)
Equations
- Lean.Meta.traverseForall visit = Lean.Meta.forgetPos Lean.Meta.traverseForallWithPos visit
Similar to traverseLambda and traverseForall but with let binders.
Equations
- Lean.Meta.traverseLet visit = Lean.Meta.forgetPos Lean.Meta.traverseLetWithPos visit
Maps visit on each child of the given expression.
Applications, foralls, lambdas and let binders are bundled (as they are bundled in Expr.traverseApp, traverseForall, ...).
So traverseChildren f e where e = `(fn a₁ ... aₙ) will return
(← f `(fn)) (← f `(a₁)) ... (← f `(aₙ)) rather than (← f `(fn a₁ ... aₙ₋₁)) (← f `(aₙ))
See also Lean.Core.traverseChildren.
Equations
- Lean.Meta.traverseChildren visit = Lean.Meta.forgetPos Lean.Meta.traverseChildrenWithPos visit