Trie.Make
Generating functor, for a given type of labels and data.
A trie is a generalization of the map data structure where the keys are themselves lists.
module Label : Stdlib.Set.OrderedType
module Data : Grp
type label = Label.t
Keys of the trie structure are label list.
label list
type data = Data.t
Data on nodes of tries are finite sets of data.
data
type t
The trie data structure. Essentially a finite map with keys label list and content data Set.t.
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.
next t lbl
t
lbl
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.
add t path v
v
path
val remove : label list -> data -> t -> t
remove t path v removes v from path path in t.
remove t path v
val iter : (label list -> data -> unit) -> t -> unit
Apply a function to all contents.