val is_empty : 'a t -> boolval add : 'a t -> string -> 'a -> [ `New of 'a t | `Replaced of 'a * 'a t ]val find : 'a t -> string -> [ `Ok of 'a | `Ambiguous | `Not_found ]val ambiguities : 'a t -> string -> string listval of_list : (string * 'a) list -> 'a t