type t = int let make_maker () = let _id = ref ~-1 in ((fun () -> incr _id;!_id), (fun () -> !_id), (fun i -> _id := i)) let dummy = -1 external to_int : t -> int = "%identity" external of_int : int -> t= "%identity"