aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--dev/db3
-rw-r--r--dev/top_printers.ml27
2 files changed, 26 insertions, 4 deletions
diff --git a/dev/db b/dev/db
index d7131757a..f259b50eb 100644
--- a/dev/db
+++ b/dev/db
@@ -55,3 +55,6 @@ install_printer Top_printers.ppgenarginfo
install_printer Top_printers.ppist
install_printer Top_printers.ppconstrunderbindersidmap
install_printer Top_printers.ppunbound_ltac_var_map
+install_printer Top_printers.ppididmap
+install_printer Top_printers.ppclosure
+install_printer Top_printers.ppclosedglobconstr
diff --git a/dev/top_printers.ml b/dev/top_printers.ml
index 49335a803..ee33995ce 100644
--- a/dev/top_printers.ml
+++ b/dev/top_printers.ml
@@ -104,14 +104,33 @@ let ppevarsubst = ppidmap (fun id0 -> prset (fun (c,copt,id) ->
(if id = id0 then mt ()
else spc () ++ str "<canonical: " ++ pr_id id ++ str ">"))))
-let ppconstrunderbindersidmap l = ppidmap (fun id (l,c) ->
- Id.print id ++ str "->" ++ hov 1 (str"[" ++ prlist_with_sep spc Id.print l ++ str"]")
+let prididmap = pridmap (fun _ -> pr_id)
+let ppididmap = ppidmap (fun _ -> pr_id)
+
+let prconstrunderbindersidmap = pridmap (fun _ (l,c) ->
+ hov 1 (str"[" ++ prlist_with_sep spc Id.print l ++ str"]")
++ str "," ++ spc () ++ Termops.print_constr c)
-let ppunbound_ltac_var_map l = ppidmap (fun id arg ->
- Id.print id ++ str "->" ++
+let ppconstrunderbindersidmap l = pp (prconstrunderbindersidmap l)
+
+let ppunbound_ltac_var_map l = ppidmap (fun _ arg ->
str"<genarg:" ++ pr_argument_type(genarg_tag arg) ++ str">")
+open Glob_term
+
+let rec pr_closure {idents;typed;untyped} =
+ hov 1 (str"{idents=" ++ prididmap idents ++ str";" ++ spc() ++
+ str"typed=" ++ prconstrunderbindersidmap typed ++ str";" ++ spc() ++
+ str"untyped=" ++ pr_closed_glob_constr_idmap untyped ++ str"}")
+and pr_closed_glob_constr_idmap x =
+ pridmap (fun _ -> pr_closed_glob_constr) x
+and pr_closed_glob_constr {closure;term} =
+ pr_closure closure ++ pr_lglob_constr term
+
+let ppclosure x = pp (pr_closure x)
+let ppclosedglobconstr x = pp (pr_closed_glob_constr x)
+let ppclosedglobconstridmap x = pp (pr_closed_glob_constr_idmap x)
+
let pP s = pp (hov 0 s)
let safe_pr_global = function