Helper functions for constructing maximally shared expressions from maximally shared expressions.
That is, mkAppS f a assumes that f and a are maximally shared.
These functions are in the Internal namespace because they can be easily misused.
We use them to construct safe functions.
Instances For
Instances For
Instances For
Instances For
Instances For
def
Lean.Meta.Sym.Internal.mkMDataS
{m : Type → Type}
[MonadShareCommon m]
[Monad m]
(d : MData)
(e : Expr)
:
m Expr
Instances For
def
Lean.Meta.Sym.Internal.mkProjS
{m : Type → Type}
[MonadShareCommon m]
[Monad m]
(structName : Name)
(idx : Nat)
(struct : Expr)
:
m Expr
Instances For
def
Lean.Meta.Sym.Internal.mkAppS
{m : Type → Type}
[MonadShareCommon m]
[Monad m]
(f a : Expr)
:
m Expr
Instances For
def
Lean.Meta.Sym.Internal.mkLambdaS
{m : Type → Type}
[MonadShareCommon m]
[Monad m]
(x : Name)
(bi : BinderInfo)
(t b : Expr)
:
m Expr
Instances For
def
Lean.Meta.Sym.Internal.mkForallS
{m : Type → Type}
[MonadShareCommon m]
[Monad m]
(x : Name)
(bi : BinderInfo)
(t b : Expr)
:
m Expr
Instances For
def
Lean.Meta.Sym.Internal.mkHaveS
{m : Type → Type}
[MonadShareCommon m]
[Monad m]
(x : Name)
(t v b : Expr)
:
m Expr
Instances For
@[inline]
def
Lean.Expr.updateAppS!
{m : Type → Type}
[Meta.Sym.Internal.MonadShareCommon m]
[Monad m]
(e newFn newArg : Expr)
:
m Expr
Instances For
@[inline]
def
Lean.Expr.updateMDataS!
{m : Type → Type}
[Meta.Sym.Internal.MonadShareCommon m]
[Monad m]
(e newExpr : Expr)
:
m Expr
Instances For
@[inline]
def
Lean.Expr.updateProjS!
{m : Type → Type}
[Meta.Sym.Internal.MonadShareCommon m]
[Monad m]
(e newExpr : Expr)
:
m Expr
Instances For
@[inline]
def
Lean.Expr.updateForallS!
{m : Type → Type}
[Meta.Sym.Internal.MonadShareCommon m]
[Monad m]
(e newDomain newBody : Expr)
:
m Expr
Instances For
@[inline]
def
Lean.Expr.updateLambdaS!
{m : Type → Type}
[Meta.Sym.Internal.MonadShareCommon m]
[Monad m]
(e newDomain newBody : Expr)
:
m Expr
Instances For
@[inline]
def
Lean.Expr.updateLetS!
{m : Type → Type}
[Meta.Sym.Internal.MonadShareCommon m]
[Monad m]
(e newType newVal newBody : Expr)
:
m Expr
Instances For
def
Lean.Meta.Sym.Internal.mkAppS₂
{m : Type → Type}
[MonadShareCommon m]
[Monad m]
(f a₁ a₂ : Expr)
:
m Expr
Instances For
def
Lean.Meta.Sym.Internal.mkAppS₃
{m : Type → Type}
[MonadShareCommon m]
[Monad m]
(f a₁ a₂ a₃ : Expr)
:
m Expr
Instances For
def
Lean.Meta.Sym.Internal.mkAppS₄
{m : Type → Type}
[MonadShareCommon m]
[Monad m]
(f a₁ a₂ a₃ a₄ : Expr)
:
m Expr
Instances For
def
Lean.Meta.Sym.Internal.mkAppS₅
{m : Type → Type}
[MonadShareCommon m]
[Monad m]
(f a₁ a₂ a₃ a₄ a₅ : Expr)
:
m Expr