29 lines
881 B
Text
29 lines
881 B
Text
/-
|
||
Copyright (c) 2016 Microsoft Corporation. All rights reserved.
|
||
Released under Apache 2.0 license as described in the file LICENSE.
|
||
Authors: Leonardo de Moura
|
||
-/
|
||
prelude
|
||
import init.meta.expr
|
||
universes u v
|
||
|
||
/-- Quoted expressions. They can be converted into expressions by using a tactic. -/
|
||
meta constant pexpr : Type
|
||
-- @[reducible] meta def pexpr := expr ff
|
||
protected meta constant pexpr.of_expr : expr → pexpr
|
||
protected meta constant pexpr.to_expr : pexpr → expr
|
||
@[instance] protected meta constant pexpr.reflect (e : pexpr) : reflected e
|
||
|
||
protected meta constant pexpr.subst : pexpr → pexpr → pexpr
|
||
|
||
meta class has_to_pexpr (α : Sort u) :=
|
||
(to_pexpr : α → pexpr)
|
||
|
||
meta def to_pexpr {α : Sort u} [has_to_pexpr α] : α → pexpr :=
|
||
has_to_pexpr.to_pexpr
|
||
|
||
meta instance : has_to_pexpr pexpr :=
|
||
⟨id⟩
|
||
|
||
meta instance : has_to_pexpr expr :=
|
||
⟨pexpr.of_expr⟩
|