type t = string [@@deriving eq, ord, show] (** Generate new unique id *) let fresh = let r = ref 0 in fun () -> let id = "id_" ^ string_of_int !r in incr r; id ;;