Module Std.Trie

Constructs a trie

module type Key = sig ... end

Key requirements. Key is a sequence of tokens of the specified length. It is better to use contiguous data structures, like arrays as keys, otherwise you can end up with a slow implementation (i.e., don't use lists or sequences as keys, use strings, bitstrings, arrays, etc).

Prefix trie interface.

Trie is a mutable table that can be seen as a specialized form of a hash table.

Use the Trie.Make functor to create modules that implement this signature. Some modules also provide an implementation of this signature under a Trie name, e.g., Bitvector.Trie, Bil.Trie, Insn.Trie, etc. See also a Trie.String module below, that is a specialized implementation of a trie data structure with string keys.

module V1 : sig ... end
module V2 : sig ... end
module type S = V1.S
module Make (Key : Key) : V2.S with type key = Key.t and type token = Key.token

Create a trie for a given Key

module type Token = sig ... end

Minimum required interface for a token data type

module Array : sig ... end

Prefix and suffix tries for specified token types.

module String : sig ... end

Predefined prefix and suffix string tries.