let join (s, i) =
C.Name (if i < 0 then s else s ^ string_of_int i)
-let mk_fresh_name context name =
+let mk_fresh_name context (name, k) =
let rec aux i = function
| [] -> name, i
| Some (C.Name s, _) :: entries ->
if m = name && j >= i then aux (succ j) entries else aux i entries
| _ :: entries -> aux i entries
in
- join (aux (-1) context)
+ join (aux k context)
let mk_fresh_name context = function
| C.Anonymous -> C.Anonymous
- | C.Name s -> mk_fresh_name context s
+ | C.Name s -> mk_fresh_name context (split s)
(* helper functions *********************************************************)