sig
  type ('a, 'b, 'cmp) t
  type ('a, 'b, 'cmp) tree
  val empty :
    comparator:('a, 'cmp) Comparator.t ->
    ('a, 'b, 'cmp) Core_map_intf.Creators3_with_comparator.t
  val singleton :
    comparator:('a, 'cmp) Comparator.t ->
    '-> '-> ('a, 'b, 'cmp) Core_map_intf.Creators3_with_comparator.t
  val of_alist :
    comparator:('a, 'cmp) Comparator.t ->
    ('a * 'b) list ->
    [ `Duplicate_key of 'a
    | `Ok of ('a, 'b, 'cmp) Core_map_intf.Creators3_with_comparator.t ]
  val of_alist_exn :
    comparator:('a, 'cmp) Comparator.t ->
    ('a * 'b) list ->
    ('a, 'b, 'cmp) Core_map_intf.Creators3_with_comparator.t
  val of_alist_multi :
    comparator:('a, 'cmp) Comparator.t ->
    ('a * 'b) list ->
    ('a, 'b list, 'cmp) Core_map_intf.Creators3_with_comparator.t
  val of_alist_fold :
    comparator:('a, 'cmp) Comparator.t ->
    ('a * 'b) list ->
    init:'->
    f:('-> '-> 'c) ->
    ('a, 'c, 'cmp) Core_map_intf.Creators3_with_comparator.t
  val of_sorted_array :
    comparator:('a, 'cmp) Comparator.t ->
    ('a * 'b) array ->
    ('a, 'b, 'cmp) Core_map_intf.Creators3_with_comparator.t Or_error.t
  val of_sorted_array_unchecked :
    comparator:('a, 'cmp) Comparator.t ->
    ('a * 'b) array ->
    ('a, 'b, 'cmp) Core_map_intf.Creators3_with_comparator.t
  val of_tree :
    comparator:('a, 'cmp) Comparator.t ->
    ('a, 'b, 'cmp) Core_map_intf.Creators3_with_comparator.tree ->
    ('a, 'b, 'cmp) Core_map_intf.Creators3_with_comparator.t
end