Type inference for LCNF #
@[reducible, inline]
We use a regular local context to store temporary local declarations created during type inference.
Instances For
Instances For
Instances For
def Lean.Compiler.LCNF.InferType.Pure.mkForallParams (params : Array (Param Purity.pure)) (type : Expr) :
Instances For
@[inline]
def Lean.Compiler.LCNF.InferType.Pure.withLocalDecl {α : Type} (binderName : Name) (type : Expr) (binderInfo : BinderInfo) (k : Expr → InferTypeM α) :
Instances For
Instances For
Instances For
def Lean.Compiler.LCNF.InferType.Pure.inferAppTypeCore (fType : Expr) (args : Array (Arg Purity.pure)) :
Instances For
Instances For
def Lean.Compiler.LCNF.mkAuxFunDecl (params : Array (Param Purity.pure)) (code : Code Purity.pure) (prefixName : Name := `_f) :
Instances For
Return true if type should be erased. See item 1 in the note above where x ◾ ◾ is
a proposition and should be erased when the universe level parameter is set to 0.
Remark: predVars is a bitmask that indicates whether de-bruijn variables are predicates or not.
That is, #i is a predicate if predVars[predVars.size - i - 1] = true