6 val singleton : elt -> t
7 val cons : elt -> t -> t
8 val snoc : t -> elt -> t
9 val concat : t -> t -> t
10 val concat3 : t -> t -> t -> t
11 val concat4 : t -> t -> t -> t -> t
12 val conscat : elt -> t -> t -> t
13 val conscat3 : elt -> t -> t -> t -> t
14 val conscat4 : elt -> t -> t -> t -> t -> t
15 val subtree_tags : Tree.t -> elt -> Tag.t -> t
16 val subtree_elements : Tree.t -> elt -> t
17 val iter : ( elt -> unit) -> t -> unit
18 val fold : ( elt -> 'a -> 'a) -> t -> 'a -> 'a
20 val serialize : string -> Tree.t -> t -> unit
23 module Count : S with type t = int
27 | Cons of Tree.node * clist
28 | Concat of clist * clist
29 | ConsCat of Tree.node * clist * clist
30 | SubtreeTags of Tree.t * Tree.node * Tag.t
31 | SubtreeElts of Tree.t * Tree.node
34 type 'a mat = { mutable clist : clist;
35 mutable length : int }
37 module Mat : S with type t = Tree.node mat
39 val debug : Tree.node mat -> unit