Module 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.

Parameters

module Label : Stdlib.Set.OrderedType
module Data : Grp

Signature

type label = Label.t

Keys of the trie structure are label list.

type data = Data.t

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.