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