@@ -15,6 +15,8 @@ open Constr
1515open Libobject
1616open Globnames
1717
18+ let debug_keys = CDebug. create ~name: " keys" ()
19+
1820type key =
1921 | KGlob of GlobRef .t
2022 | KLam
@@ -64,6 +66,23 @@ module KeyOrdered = struct
6466 | k , k' -> k == k'
6567end
6668
69+ let pr_key pr_global k =
70+ let open Pp in
71+ match k with
72+ | KGlob gr -> pr_global gr
73+ | KLam -> str" Lambda"
74+ | KLet -> str" Let"
75+ | KProd -> str" Product"
76+ | KSort -> str" Sort"
77+ | KCase -> str" Case"
78+ | KFix -> str" Fix"
79+ | KCoFix -> str" CoFix"
80+ | KRel -> str" Rel"
81+ | KInt -> str" Int"
82+ | KFloat -> str" Float"
83+ | KString -> str" String"
84+ | KArray -> str" Array"
85+
6786module Keymap = HMap. Make (KeyOrdered )
6887
6988(* Mapping structure for references to be considered equivalent *)
@@ -79,8 +98,12 @@ let add_keys k ki v vi =
7998
8099let equiv_keys k k' =
81100 if k == k' || KeyOrdered. equal k k' then Some ((0 , 0 )) else
82- try Some (Keymap. find k' (Keymap. find k ! keys))
83- with Not_found -> None
101+ try let r = Some (Keymap. find k' (Keymap. find k ! keys)) in
102+ let () = debug_keys (fun () -> Pp. (v 0 (pr_key Names.GlobRef. print k ++ str " = " ++ pr_key Names.GlobRef. print k' ++ cut () ))) in
103+ r
104+ with Not_found ->
105+ let () = debug_keys (fun () -> Pp. (v 0 (pr_key Names.GlobRef. print k ++ str " != " ++ pr_key Names.GlobRef. print k' ++ cut () ))) in
106+ None
84107
85108let mkKGlob env gr = KGlob (Environ.QGlobRef. canonize env gr)
86109
@@ -150,21 +173,6 @@ let constr_key env kind c =
150173
151174open Pp
152175
153- let pr_key pr_global = function
154- | KGlob gr -> pr_global gr
155- | KLam -> str" Lambda"
156- | KLet -> str" Let"
157- | KProd -> str" Product"
158- | KSort -> str" Sort"
159- | KCase -> str" Case"
160- | KFix -> str" Fix"
161- | KCoFix -> str" CoFix"
162- | KRel -> str" Rel"
163- | KInt -> str" Int"
164- | KFloat -> str" Float"
165- | KString -> str" String"
166- | KArray -> str" Array"
167-
168176let pr_keyset pr_global v =
169177 prlist_with_sep spc (fun (k , (i , i' )) -> pr_key pr_global k ++ str " (" ++ int i ++ str " , " ++ int i' ++ str " )" ) (Keymap. bindings v)
170178
0 commit comments