-module type S =
+module type SA =
sig
type data
type t
val make : data -> t
val node : t -> data
val hash : t -> int
- val uid : t -> int
+ val uid : t -> Uid.t
+ val equal : t -> t -> bool
+
+
+ val with_id : Uid.t -> t
+ end
+
+module type S =
+ sig
+ type data
+ type t = private { id : Uid.t;
+ key : int;
+ node : data }
+ val make : data -> t
+ val node : t -> data
+ val hash : t -> int
+ val uid : t -> Uid.t
val equal : t -> t -> bool
+
+
+ val with_id : Uid.t -> t
end
module Make (H : Hashtbl.HashedType) : S with type data = H.t