Merge branch 'local-ocamlbuild' into local-trunk
[SXSI/xpathcomp.git] / src / hlist.mli
diff --git a/src/hlist.mli b/src/hlist.mli
new file mode 100644 (file)
index 0000000..d7749f1
--- /dev/null
@@ -0,0 +1,32 @@
+module type S = sig
+  type elt
+  type 'a node = Nil | Cons of elt * 'a
+
+  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 -> Uid.t
+  val make : data -> t
+  val equal : t -> t -> bool
+  val nil : t
+  val node : t -> t node
+  val cons : elt -> t -> t
+  val hd : t -> elt
+  val tl : t -> t
+  val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
+  val map : (elt -> elt) -> t -> t
+  val iter : (elt -> 'a) -> t -> unit
+  val rev : t -> t
+  val rev_map : (elt -> elt) -> t -> t
+  val length : t -> int
+  val mem : elt -> t -> bool
+end
+
+module Make (H : Hcons.SA) : S with type elt = H.t