let fresh_name prefix basename =
let x = identifier basename in
let m = if x="" then prefix else Printf.sprintf "%s_%s" prefix x in
try
let p = Hashtbl.find gfresh m in
incr p ; Printf.sprintf "%s_%d" m !p
with Not_found ->
Hashtbl.add gfresh m (ref 0) ; m