+
module type S =
sig
type t
type elt = Tree.node
val empty : t
+ val var : (int*State.t) -> t
+ val close : ((int*State.t), t) Hashtbl.t -> t -> t
+ val is_open : t -> bool
val singleton : elt -> t
val cons : elt -> t -> t
val snoc : t -> elt -> t
val fold : ( elt -> 'a -> 'a) -> t -> 'a -> 'a
val length : t -> int
val serialize : string -> Tree.t -> t -> unit
+
+
+
end
module Count : S with type t = int
module Mat : S with type t = Tree.node mat
val debug : Tree.node mat -> unit
+
+module Partial(N : S) : S