sig
type 'a t
val empty : 'a Cubetrie.t
val is_empty : 'a Cubetrie.t -> bool
val add : Types.Atom.t list -> 'a -> 'a Cubetrie.t -> 'a Cubetrie.t
val add_force : Types.Atom.t list -> 'a -> 'a Cubetrie.t -> 'a Cubetrie.t
val add_array : Types.ArrayAtom.t -> 'a -> 'a Cubetrie.t -> 'a Cubetrie.t
val add_array_force :
Types.ArrayAtom.t -> 'a -> 'a Cubetrie.t -> 'a Cubetrie.t
val mem : Types.Atom.t list -> Node.t Cubetrie.t -> int list option
val mem_array : Types.ArrayAtom.t -> Node.t Cubetrie.t -> int list option
val mem_array_poly : Types.ArrayAtom.t -> 'a Cubetrie.t -> bool
val iter : ('a -> unit) -> 'a Cubetrie.t -> unit
val fold : ('b -> 'a -> 'b) -> 'b -> 'a Cubetrie.t -> 'b
val delete : ('a -> bool) -> 'a Cubetrie.t -> 'a Cubetrie.t
val iter_subsumed :
('a -> unit) -> Types.Atom.t list -> 'a Cubetrie.t -> unit
val all_vals : 'a Cubetrie.t -> 'a list
val consistent : Types.Atom.t list -> 'a Cubetrie.t -> 'a list
val add_and_resolve : Node.t -> Node.t Cubetrie.t -> Node.t Cubetrie.t
val delete_subsumed :
?cpt:int Pervasives.ref ->
Node.t -> Node.t Cubetrie.t -> Node.t Cubetrie.t
val add_node : Node.t -> Node.t Cubetrie.t -> Node.t Cubetrie.t
end