Add hooks to re-initialize hconsed modules.
[SXSI/xpathcomp.git] / src / hlist.mli
1 module type S = sig
2   type elt
3   type 'a node = Nil | Cons of elt * 'a
4
5   module rec Node :
6   sig
7     include Hcons.S with type data = Data.t
8   end
9   and Data : sig
10     include Hashtbl.HashedType with type t = Node.t node
11   end
12   type data = Data.t
13   type t = Node.t
14   val hash : t -> int
15   val uid : t -> Uid.t
16   val make : data -> t
17   val equal : t -> t -> bool
18   val nil : t
19   val node : t -> t node
20   val cons : ?sorted:bool -> elt -> t -> t
21   val hd : t -> elt
22   val tl : t -> t
23   val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
24   val map : (elt -> elt) -> t -> t
25   val iter : (elt -> 'a) -> t -> unit
26   val rev : t -> t
27   val rev_map : (elt -> elt) -> t -> t
28   val length : t -> int
29   val mem : elt -> t -> bool
30   val stats : unit -> unit
31   val init : unit -> unit
32 end
33
34 module Make (H : Hcons.SA) : S with type elt = H.t