module Cubetrie:sig..end
Trie structure for cubes sets
type 'a t
Trie, mapping sets of atoms (i.e. cubes) to values of type 'a
val empty : 'a tThe empty trie.
val is_empty : 'a t -> boolTest emptyness of a trie
val add : Types.Atom.t list -> 'a -> 'a t -> 'a tAdd a mapping cube->v to trie
val add_force : Types.Atom.t list -> 'a -> 'a t -> 'a tAdd a mapping cube->v to trie without checking for subsomption
val add_array : Types.ArrayAtom.t -> 'a -> 'a t -> 'a tAdd a mapping cube->v to trie
val add_array_force : Types.ArrayAtom.t -> 'a -> 'a t -> 'a tAdd a mapping cube->v to trie without checking for subsomption
val mem : Types.Atom.t list -> Node.t t -> int list optionIs cube subsumed by some cube in the trie?
val mem_array : Types.ArrayAtom.t -> Node.t t -> int list optionIs cube subsumed by some cube in the trie?
val mem_array_poly : Types.ArrayAtom.t -> 'a t -> boolIs cube subsumed by some cube in the trie?
val iter : ('a -> unit) -> 'a t -> unitApply f to all values mapped to in the trie.
val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'bfold f to all values mapped to in the trie.
val delete : ('a -> bool) -> 'a t -> 'a tDelete all values which satisfy the predicate p
val iter_subsumed : ('a -> unit) -> Types.Atom.t list -> 'a t -> unitApply f to all values whose keys (cubes) are subsumed by the given cube.
val all_vals : 'a t -> 'a listList of all values mapped by the trie
val consistent : Types.Atom.t list -> 'a t -> 'a listAll values whose keys (cubes) are not inconsistent with the given cube.
val add_and_resolve : Node.t -> Node.t t -> Node.t t
val delete_subsumed : ?cpt:int Pervasives.ref -> Node.t -> Node.t t -> Node.t tDelete from the trie nodes that are subsumed by the first arguments
val add_node : Node.t -> Node.t t -> Node.t tAdd a node in the trie