module type ResultSet =
sig
type t
+ type elt = [`Tree] Tree.node
val empty : t
- val cons : Tree.t -> t -> t
+ val cons : elt -> t -> t
val concat : t -> t -> t
- val iter : (Tree.t -> unit) -> t -> unit
- val fold : (Tree.t -> 'a -> 'a) -> t -> 'a -> 'a
- val map : (Tree.t -> Tree.t) -> t -> t
+ val iter : (elt -> unit) -> t -> unit
+ val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
+ val map : (elt -> elt) -> t -> t
val length : t -> int
+ val merge : bool -> bool -> bool -> bool -> elt -> t -> t -> t
end
module IdSet : ResultSet