Module Belt_internalMapString

type key = string
module A = Belt_Array
module S = Belt_SortArray
type 'a t = (key, 'a) N.t
val add : (key, 'a) N.t -> key -> 'b -> (key, 'c) N.t
val get : (key, 'a) N.t -> key -> 'b option
val getUndefined : (key, 'a) N.t -> key -> 'b Js_undefined.t
val getExn : (key, 'a) N.t -> key -> 'b
val getWithDefault : (key, 'a) N.t -> key -> 'b -> 'c
val has : (key, 'a) N.t -> key -> bool
val remove : (key, 'a) N.t -> key -> (key, 'a) N.t
val splitAux : key -> (key, 'a) N.node -> 'b t * 'c option * 'd t
val split : key -> (key, 'a) N.node option -> 'a t * 'b option * 'a t
val mergeU : (key, 'a) N.t -> 'b t -> (key -> 'c option -> 'b option -> 'd option) Js.Fn.arity3 -> (key, 'e) N.t
val merge : (key, 'a) N.t -> 'b t -> (key -> 'a option -> 'b option -> 'c option) -> (key, 'c) N.t
val compareAux : (key, 'a) N.node list -> (key, 'b) N.node list -> ('c -> 'd -> int) Js.Fn.arity2 -> int
val cmpU : (key, 'a) N.t -> (key, 'b) N.t -> ('c -> 'd -> int) Js.Fn.arity2 -> int
val cmp : (key, 'a) N.t -> (key, 'b) N.t -> ('c -> 'd -> int) -> int
val eqAux : (key, 'a) N.node list -> (key, 'b) N.node list -> ('c -> 'd -> bool) Js.Fn.arity2 -> bool
val eqU : (key, 'a) N.t -> (key, 'b) N.t -> ('c -> 'd -> bool) Js.Fn.arity2 -> bool
val eq : (key, 'a) N.t -> (key, 'b) N.t -> ('c -> 'd -> bool) -> bool
val addMutate : 'a t -> key -> 'b -> 'c t
val fromArray : (key * 'a) array -> (key, 'b) N.t