module type Key = sig .. end
type t
module Part : sig .. end
type t
val hash : t -> int
val compare : t -> t -> int
val t_of_sexp : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t
val iter : t -> f:(Part.t -> unit) -> unit
module type S = sig .. end
module Key : sig .. end
type t
module Part : sig .. end
type t
include Core.Std.Hashable with type t := t
type t = 
|Node of (bool * t) Part.Table.t
val create : unit -> t
val contains : t -> Key.t -> bool
val add : t -> Key.t -> unit
val remove : t -> Key.t -> unit
val render_as_regexp : t -> capture_parts:bool -> to_quoted_string:(Part.t -> string) -> string
module Make : 
functor (T : Key) -> S with type Key.t = T.t with type Part.t = T.Part.t
module String_trie : S with type Key.t = Core.Std.String.t with type Part.t = Core.Std.Char.t