Tries.

This implementation also maps any non ambiguous prefix of a key to its value.

Sourcetype 'a t
Sourceval empty : 'a t
Sourceval is_empty : 'a t -> bool
Sourceval add : 'a t -> string -> 'a -> [ `New of 'a t | `Replaced of 'a * 'a t ]
Sourceval find : 'a t -> string -> [ `Ok of 'a | `Ambiguous | `Not_found ]
Sourceval ambiguities : 'a t -> string -> string list
Sourceval of_list : (string * 'a) list -> 'a t