(* First order tactics *)
| Absurd (_, term) -> "absurd" ^ term_pp term
| Apply (_, term) -> "apply " ^ term_pp term
+ | ApplyRule (_, term) -> "apply rule " ^ term_pp term
| ApplyP (_, term) -> "applyP " ^ term_pp term
| ApplyS (_, term, params) ->
"applyS " ^ term_pp term ^ pp_auto_params ~term_pp params
else
"(" ^ s ^ ")"
-let pp_macro ~term_pp =
+let pp_macro ~term_pp ~lazy_term_pp =
let term_pp = pp_arg ~term_pp in
let style_pp = function
| Declarative -> ""
| Some `Variant -> " as variant"
| Some `Axiom -> " as axiom"
in
+ let pp_reduction_kind = pp_reduction_kind ~term_pp:lazy_term_pp in
function
(* Whelp *)
| WInstance (_, term) -> "whelp instance " ^ term_pp term
| WElim (_, t) -> "whelp elim " ^ term_pp t
| WMatch (_, term) -> "whelp match " ^ term_pp term
(* real macros *)
+ | Eval (_, kind, term) ->
+ Printf.sprintf "eval %s on %s" (pp_reduction_kind kind) (term_pp term)
| Check (_, term) -> Printf.sprintf "check %s" (term_pp term)
| Hint (_, true) -> "hint rewrite"
| Hint (_, false) -> "hint"
let pp_executable ~map_unicode_to_tex ~term_pp ~lazy_term_pp ~obj_pp =
function
- | Macro (_, macro) -> pp_macro ~term_pp macro ^ "."
+ | Macro (_, macro) -> pp_macro ~term_pp ~lazy_term_pp macro ^ "."
| Tactic (_, Some tac, punct) ->
pp_tactic ~map_unicode_to_tex ~lazy_term_pp ~term_pp tac
^ pp_punctuation_tactical ~lazy_term_pp ~term_pp punct