@[inline, reducible]
Instances For
- keys : Array Lean.Meta.InstanceKey
- val : Lean.Expr
- priority : Nat
The order in which the instance's arguments are to be synthesized.
- attrKind : Lean.AttributeKind
Instances For
Equations
- Lean.Meta.instInhabitedInstanceEntry = { default := { keys := default, val := default, priority := default, globalName? := default, synthOrder := default, attrKind := default } }
Equations
- Lean.Meta.instBEqInstanceEntry = { beq := fun e₁ e₂ => e₁.val == e₂.val }
Equations
- Lean.Meta.instToFormatInstanceEntry = { format := fun e => match e.globalName? with | some n => Std.format n | x => Std.Format.text "<local>" }
@[inline, reducible]
Instances For
- discrTree : Lean.Meta.InstanceTree
- instanceNames : Lean.PHashMap Lake.Name Lean.Meta.InstanceEntry
- erased : Lean.PHashSet Lake.Name
Instances For
Equations
- Lean.Meta.instInhabitedInstances = { default := { discrTree := default, instanceNames := default, erased := default } }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lean.Meta.Instances.erase
{m : Type → Type}
[Monad m]
[Lean.MonadError m]
(d : Lean.Meta.Instances)
(declName : Lake.Name)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
Compute the order the arguments of inst
should by synthesized.
The synthesization order makes sure that all mvars in non-out-params of the subgoals are assigned before we try to synthesize it. Otherwise it goes left to right.
For example:
[Add α] [Zero α] : Foo α
returns[0, 1]
[Mul A] [Mul B] [MulHomClass F A B] : FunLike F A B
returns[2, 0, 1]
(because A B are out-params and are only filled in once we synthesize 2)
(The type of inst
must not contain mvars.)
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Meta.getGlobalInstancesIndex = do let __do_lift ← Lean.getEnv pure (Lean.ScopedEnvExtension.getState Lean.Meta.instanceExtension __do_lift).discrTree
Instances For
Equations
- Lean.Meta.getErasedInstances = do let __do_lift ← Lean.getEnv pure (Lean.ScopedEnvExtension.getState Lean.Meta.instanceExtension __do_lift).erased
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Default instance support #
@[inline, reducible]
Equations
- Lean.Meta.PrioritySet = Lean.RBTree Nat fun x y => compare y x
Instances For
- defaultInstances : Lake.NameMap (List (Lake.Name × Nat))
- priorities : Lean.Meta.PrioritySet
Instances For
Equations
- Lean.Meta.instInhabitedDefaultInstances = { default := { defaultInstances := default, priorities := default } }
def
Lean.Meta.addDefaultInstanceEntry
(d : Lean.Meta.DefaultInstances)
(e : Lean.Meta.DefaultInstanceEntry)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Meta.getDefaultInstancesPriorities = do let __do_lift ← Lean.getEnv pure (Lean.SimplePersistentEnvExtension.getState Lean.Meta.defaultInstanceExtension __do_lift).priorities