(* mk_fresh_name context name typ *)
(* returns an identifier which is fresh in the context *)
(* and that resembles [name] as much as possible. *)
(* [typ] will be the type of the variable *)
(* mk_fresh_name context name typ *)
(* returns an identifier which is fresh in the context *)
(* and that resembles [name] as much as possible. *)
(* [typ] will be the type of the variable *)
| C.Cast (te,ty) ->
let te',rels1 = aux k te in
let ty',rels2 = aux k ty in
| C.Cast (te,ty) ->
let te',rels1 = aux k te in
let ty',rels2 = aux k ty in
- if List.mem k rels2 then assert false else C.Anonymous
+ if List.mem k rels2 then
+(
+ debug_print "If this happens often, we can do something about it (i.e. we can generate a new fresh name; problem: we need the metasenv and context ;-(. Alternative solution: mk_implicit does not generate entries for the elements in the context that have no name" ;
+ C.Anonymous
+)
+ else
+ C.Anonymous