sig
type t
val invalid : t
val is_valid : t -> bool
val equal : t -> t -> bool
val hash : t -> int
val compare : t -> t -> int
type generator
val new_generator : unit -> Id.Generator.generator
val fresh : Id.Generator.generator -> t
val count : Id.Generator.generator -> int
val iter : (t -> unit) -> Id.Generator.generator -> unit
val fold : ('a -> t -> 'a) -> 'a -> Id.Generator.generator -> 'a
end