File: .lake/packages/Qq/Qq/Typ.lean

full_name: Qq.Quoted
code: /--
`Quoted α` is the type of Lean expressions having type `α`.

You should usually write this using the notation `Q($α)`.
-/
def Quoted (α : Expr) 
goal: Type

full_name: Qq.Quoted.unsafeMk
code: /--
Creates a quoted expression.  Requires that `e` has type `α`.

You should usually write this using the notation `q($e)`.
-/
protected def Quoted.unsafeMk (e : Expr) : Quoted α 
goal: Qq.Quoted α

full_name: Qq.instBEqQuoted
code: instance : BEq (Quoted α) 
goal: BEq (Qq.Quoted α)

full_name: Qq.instHashableQuoted
code: instance : Hashable (Quoted α) 
goal: Hashable (Qq.Quoted α)

full_name: Qq.instInhabitedQuoted
code: instance : Inhabited (Quoted α) 
goal: Inhabited (Qq.Quoted α)

full_name: Qq.instToStringQuoted
code: instance : ToString (Quoted α) 
goal: ToString (Qq.Quoted α)

full_name: Qq.instReprQuoted
code: instance : Repr (Quoted α) 
goal: Repr (Qq.Quoted α)

full_name: Qq.instCoeOutQuotedExpr
code: instance : CoeOut (Quoted α) Expr 
goal: CoeOut (Qq.Quoted α) Lean.Expr

full_name: Qq.instCoeOutQuotedMessageData
code: instance : CoeOut (Quoted α) MessageData 
goal: CoeOut (Qq.Quoted α) Lean.MessageData

full_name: Qq.instToMessageDataQuoted
code: instance : ToMessageData (Quoted α) 
goal: Lean.ToMessageData (Qq.Quoted α)

full_name: Qq.Quoted.ty
code: /-- Gets the type of a quoted expression.  -/
protected abbrev Quoted.ty (t : Quoted α) : Expr 
goal: Lean.Expr

full_name: Qq.QuotedDefEq.unsafeIntro
code: /--
`QuotedDefEq lhs rhs` says that the expressions `lhs` and `rhs` are definitionally equal.

You should usually write this using the notation `$lhs =Q $rhs`.
-/
structure QuotedDefEq {α : Quoted (.sort u)} (lhs rhs : Quoted α) : Prop :=
  unsafeIntro ::
goal: Qq.QuotedDefEq lhs rhs

full_name: Qq.QuotedDefEq
code: /--
`QuotedDefEq lhs rhs` says that the expressions `lhs` and `rhs` are definitionally equal.

You should usually write this using the notation `$lhs =Q $rhs`.
-/
structure QuotedDefEq {α : Quoted (.sort u)} (lhs rhs : Quoted α) : Prop :=
  unsafeIntro ::
goal: Prop

full_name: Qq.QuotedLevelDefEq
code: /--
`QuotedLevelDefEq u v` says that the levels `u` and `v` are definitionally equal.

You should usually write this using the notation `$u =QL $v`.
-/
structure QuotedLevelDefEq (u v : Level) : Prop :=
  unsafeIntro ::
goal: Prop

full_name: Qq.QuotedLevelDefEq.unsafeIntro
code: /--
`QuotedLevelDefEq u v` says that the levels `u` and `v` are definitionally equal.

You should usually write this using the notation `$u =QL $v`.
-/
structure QuotedLevelDefEq (u v : Level) : Prop :=
  unsafeIntro ::
goal: Qq.QuotedLevelDefEq u v

full_name: Qq.Quoted.check
code: /-- Check that a term `e : Q(α)` really has type `α`. -/
protected def Quoted.check (e : Quoted α) : MetaM Unit 
goal: Lean.MetaM Unit

full_name: Qq.QuotedDefEq.check
code: /-- Check that the claim `$lhs =Q $rhs` is actually true; that the two terms are defeq. -/
protected def QuotedDefEq.check (e : @QuotedDefEq u α lhs rhs) : MetaM Unit 
goal: Lean.MetaM Unit

full_name: Qq.QuotedLevelDefEq.check
code: /-- Check that the claim `$u =QL $v` is actually true; that the two levels are defeq. -/
protected def QuotedLevelDefEq.check (e : QuotedLevelDefEq lhs rhs) : MetaM Unit 
goal: Lean.MetaM Unit