Safety before Techfest
[SXSI/xpathcomp.git] / hlist.mli
index 7796833..7210250 100644 (file)
--- a/hlist.mli
+++ b/hlist.mli
@@ -1,9 +1,19 @@
 module type S = sig
   type elt 
   type 'a node = Nil | Cons of elt * 'a
-  type t
+
+  module rec Node : 
+  sig
+    include Hcons.S with type data = Data.t
+  end
+  and Data : sig
+    include Hashtbl.HashedType with type t = Node.t node
+  end
+  type data = Data.t
+  type t = Node.t
   val hash : t -> int
   val uid : t -> int
+  val make : data -> t
   val equal : t -> t -> bool
   val nil : t
   val node : t -> t node
@@ -18,4 +28,4 @@ module type S = sig
   val length : t -> int
 end
 
-module Make (H : Hcons.S) : S with type elt = H.t
+module Make (H : Hcons.SA) : S with type elt = H.t