cherry pick from local- branch
[SXSI/xpathcomp.git] / hcons.mli
index ceb33c2..888531e 100644 (file)
--- a/hcons.mli
+++ b/hcons.mli
@@ -1,21 +1,31 @@
+module type SA =
+  sig
+    type data
+    type t 
+    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 type S =
   sig
     type data
-    type t
+    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 -> int
+    val uid : t -> Uid.t
     val equal : t -> t -> bool
+
+      
+    val with_id : Uid.t -> t
   end
-module Make :
-  functor (H : Hashtbl.HashedType) ->
-sig
-  type data = H.t
-  type t
-  val make : data -> t
-  val node : t -> data
-  val hash : t -> int
-  val uid : t -> int
-  val equal : t -> t -> bool
-end
+
+module Make (H : Hashtbl.HashedType) : S with type data = H.t