Documentation

Qq.Match

Equations
  • x.fvarTy = match x with | { ty := none, fvarId := fvarId, userName := userName } => q(Lean.Level) | { ty := some val, fvarId := fvarId, userName := userName } => q(Lean.Expr)
def Qq.Impl.PatVarDecl.fvar (decl : Qq.Impl.PatVarDecl) :
let a := decl.fvarTy; let match_1_1 := match decl with | { ty := none, fvarId := fvarId, userName := userName } => q(Lean.Level) | { ty := some val, fvarId := fvarId, userName := userName } => q(Lean.Expr); Q(«$match_1_1»)
Equations
Equations
def Qq.Impl.mkIsDefEqResult (val : Bool) (decls : List Qq.Impl.PatVarDecl) :
let a := Qq.Impl.mkIsDefEqType decls; let mkIsDefEqType_1 := Qq.Impl.mkIsDefEqType decls; Q(«$mkIsDefEqType_1»)
def Qq.Impl.mkIsDefEqResultVal (decls : List Qq.Impl.PatVarDecl) :
(let a := Qq.Impl.mkIsDefEqType decls; let mkIsDefEqType_1 := Qq.Impl.mkIsDefEqType decls; Q(«$mkIsDefEqType_1»))Q(Bool)
Equations
Equations
Equations
def Qq.Impl.mkInstantiateMVars (decls : List Qq.Impl.PatVarDecl) :
List Qq.Impl.PatVarDeclLean.MetaM (let a := Qq.Impl.mkIsDefEqType decls; let mkIsDefEqType_1 := Qq.Impl.mkIsDefEqType decls; Q(Lean.MetaM «$mkIsDefEqType_1»))
def Qq.Impl.mkIsDefEqCore (decls : List Qq.Impl.PatVarDecl) (pat : Q(Lean.Expr)) (discr : Q(Lean.Expr)) :
List Qq.Impl.PatVarDeclLean.MetaM (let a := Qq.Impl.mkIsDefEqType decls; let mkIsDefEqType_1 := Qq.Impl.mkIsDefEqType decls; Q(Lean.MetaM «$mkIsDefEqType_1»))
Equations
  • One or more equations did not get rendered due to their size.
def Qq.Impl.mkIsDefEq (decls : List Qq.Impl.PatVarDecl) (pat : Q(Lean.Expr)) (discr : Q(Lean.Expr)) :
Lean.MetaM (let a := Qq.Impl.mkIsDefEqType decls; let mkIsDefEqType_1 := Qq.Impl.mkIsDefEqType decls; Q(Lean.MetaM «$mkIsDefEqType_1»))
Equations
def Qq.Impl.mkQqLets {γ : Q(Type)} (decls : List Qq.Impl.PatVarDecl) :
(let a := Qq.Impl.mkIsDefEqType decls; let mkIsDefEqType_1 := Qq.Impl.mkIsDefEqType decls; Q(«$mkIsDefEqType_1»))Lean.Elab.TermElabM Q(«$γ»)Lean.Elab.TermElabM Q(«$γ»)
Equations
def Qq.Impl.makeMatchCode {v : Lean.Level} {γ : Q(Type)} {m : Q(TypeType v)} (_instLift : Q(MonadLiftT Lean.MetaM «$m»)) (_instBind : Q(Bind «$m»)) (decls : List Qq.Impl.PatVarDecl) (uTy : Q(Lean.Level)) (ty : Q(Q(Sort «$uTy»))) (pat : Q(Q(«$$ty»))) (discr : Q(Q(«$$ty»))) (alt : Q(«$m» «$γ»)) (expectedType : Lean.Expr) (k : Lean.ExprLean.Elab.TermElabM Q(«$m» «$γ»)) :
Lean.Elab.TermElabM Q(«$m» «$γ»)
Equations
  • One or more equations did not get rendered due to their size.
Equations
Equations
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
def Qq.Impl.mkLetDoSeqItem {m : TypeType} [Monad m] [Lean.MonadQuotation m] (pat : Lean.Term) (rhs : Lean.TSyntax `term) (alt : Lean.TSyntax `Lean.Parser.Term.doSeq) :
m (List (Lean.TSyntax `Lean.Parser.Term.doSeqItem))
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
partial def Qq.Impl.floatQMatch (alt : Lean.TSyntax `Lean.Parser.Term.doSeq) :
Lean.TermStateT (List (Lean.TSyntax `Lean.Parser.Term.doSeqItem)) Lean.MacroM Lean.Term