let makefresh () = let counter = ref 0 in let fresh = (fun () -> let id = (!counter + 1) in let _ = (counter := id) in id) in fresh