Fixed bug in NextElement, improved caching
[SXSI/xpathcomp.git] / hcons.ml
index eb60385..35bc942 100644 (file)
--- a/hcons.ml
+++ b/hcons.ml
@@ -1,22 +1,34 @@
 INCLUDE "utils.ml"
-module type S = 
-sig
-  type data
-  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 type SA =
+  sig
+    type data
+    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 type S =
+  sig
+    type data
+    type t = private { id : int;
+                      key : int;
+                      node : data }
+    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 =
 struct
   type data = H.t
-  type t =  { id : int;
-             key : int; 
-             node : data;
-           }
-  
+  type t = { id : int;
+            key : int;
+            node : data }
   let node t = t.node
   let hash t = t.key
   let uid t = t.id