| `Elim -> "elim"
| `Instance -> "instance"
-let pp_macro ~term_pp = function
+let pp_arg ~term_pp arg =
+ let s = term_pp arg in
+ if s = "" || (s.[0] = '(' && s.[String.length s - 1] = ')') then
+ (* _nice_ heuristic *)
+ s
+ else
+ "(" ^ s ^ ")"
+
+let pp_macro ~term_pp =
+ let term_pp = pp_arg ~term_pp in
+ function
(* Whelp *)
| WInstance (_, term) -> "whelp instance " ^ term_pp term
| WHint (_, t) -> "whelp hint " ^ term_pp t