Module type Trie.S

type label

Keys of the trie structure are label list.

type data

Data on nodes of tries are finite sets of data.

type t

The trie data structure. Essentially a finite map with keys label list and content data Set.t.

val empty : t

The empty trie.

val get : t -> data

Get the data at the current node.

val next : t -> label -> t

next t lbl returns the subtrie of t pointed by lbl.

raises Not_found

if there is none.

val labels : t -> label list

Get the list of defined labels at the current node.

val add : label list -> data -> t -> t

add t path v adds v at path path in t.

val remove : label list -> data -> t -> t

remove t path v removes v from path path in t.

val iter : (label list -> data -> unit) -> t -> unit

Apply a function to all contents.