Map.PolyA polymorphic Map.
type ('key, +'value) t = ('key, 'value, Comparator.Poly.comparator_witness) ttype ('key, +'value) tree =
  ('key, 'value, Comparator.Poly.comparator_witness) Using_comparator.Tree.ttype comparator_witness = Comparator.Poly.comparator_witnessval empty : ('k, _) tval singleton : 'k -> 'v -> ('k, 'v) tval of_sorted_array : ('k * 'v) array -> ('k, 'v) t Or_error.tval of_sorted_array_unchecked : ('k * 'v) array -> ('k, 'v) tval of_increasing_iterator_unchecked : 
  len:int ->
  f:(int -> 'k * 'v) ->
  ('k, 'v) tval of_alist : ('k * 'v) list -> [ `Ok of ('k, 'v) t | `Duplicate_key of 'k ]val of_alist_or_error : ('k * 'v) list -> ('k, 'v) t Or_error.tval of_alist_exn : ('k * 'v) list -> ('k, 'v) tval of_alist_multi : ('k * 'v) list -> ('k, 'v list) tval of_alist_fold : 
  ('k * 'v1) list ->
  init:'v2 ->
  f:('v2 -> 'v1 -> 'v2) ->
  ('k, 'v2) tval of_alist_reduce : ('k * 'v) list -> f:('v -> 'v -> 'v) -> ('k, 'v) tval of_increasing_sequence : ('k * 'v) Sequence.t -> ('k, 'v) t Or_error.tval of_sequence : 
  ('k * 'v) Sequence.t ->
  [ `Ok of ('k, 'v) t | `Duplicate_key of 'k ]val of_sequence_or_error : ('k * 'v) Sequence.t -> ('k, 'v) t Or_error.tval of_sequence_exn : ('k * 'v) Sequence.t -> ('k, 'v) tval of_sequence_multi : ('k * 'v) Sequence.t -> ('k, 'v list) tval of_sequence_fold : 
  ('k * 'v1) Sequence.t ->
  init:'v2 ->
  f:('v2 -> 'v1 -> 'v2) ->
  ('k, 'v2) tval of_sequence_reduce : 
  ('k * 'v) Sequence.t ->
  f:('v -> 'v -> 'v) ->
  ('k, 'v) tval of_list_with_key : 
  'v list ->
  get_key:('v -> 'k) ->
  [ `Ok of ('k, 'v) t | `Duplicate_key of 'k ]val of_list_with_key_or_error : 
  'v list ->
  get_key:('v -> 'k) ->
  ('k, 'v) t Or_error.tval of_list_with_key_exn : 'v list -> get_key:('v -> 'k) -> ('k, 'v) tval of_list_with_key_multi : 'v list -> get_key:('v -> 'k) -> ('k, 'v list) tval of_iteri : 
  iteri:(f:(key:'k -> data:'v -> unit) -> unit) ->
  [ `Ok of ('k, 'v) t | `Duplicate_key of 'k ]val of_iteri_exn : iteri:(f:(key:'k -> data:'v -> unit) -> unit) -> ('k, 'v) tval invariants : ('k, 'v) t -> boolval is_empty : (_, _) t -> boolval length : (_, _) t -> intval find_multi : ('k, 'v list) t -> 'k -> 'v listval find : ('k, 'v) t -> 'k -> 'v optionval find_exn : ('k, 'v) t -> 'k -> 'vval mem : ('k, _) t -> 'k -> boolval iter_keys : ('k, _) t -> f:('k -> unit) -> unitval iter : (_, 'v) t -> f:('v -> unit) -> unitval iteri : ('k, 'v) t -> f:(key:'k -> data:'v -> unit) -> unitval iteri_until : 
  ('k, 'v) t ->
  f:(key:'k -> data:'v -> Continue_or_stop.t) ->
  Finished_or_unfinished.tval fold : 
  ('k, 'v) t ->
  init:'acc ->
  f:(key:'k -> data:'v -> 'acc -> 'acc) ->
  'accval fold_until : 
  ('k, 'v) t ->
  init:'acc ->
  f:(key:'k -> data:'v -> 'acc -> ('acc, 'final) Container.Continue_or_stop.t) ->
  finish:('acc -> 'final) ->
  'finalval fold_right : 
  ('k, 'v) t ->
  init:'acc ->
  f:(key:'k -> data:'v -> 'acc -> 'acc) ->
  'accval combine_errors : ('k, 'v Or_error.t) t -> ('k, 'v) t Or_error.tval keys : ('k, _) t -> 'k listval data : (_, 'v) t -> 'v listval to_alist : 
  ?key_order:[ `Increasing | `Decreasing ] ->
  ('k, 'v) t ->
  ('k * 'v) listval symmetric_diff : 
  ('k, 'v) t ->
  ('k, 'v) t ->
  data_equal:('v -> 'v -> bool) ->
  ('k * [ `Left of 'v | `Right of 'v | `Unequal of 'v * 'v ]) Sequence.tval min_elt : ('k, 'v) t -> ('k * 'v) optionval min_elt_exn : ('k, 'v) t -> 'k * 'vval max_elt : ('k, 'v) t -> ('k * 'v) optionval max_elt_exn : ('k, 'v) t -> 'k * 'vval for_all : ('k, 'v) t -> f:('v -> bool) -> boolval for_alli : ('k, 'v) t -> f:(key:'k -> data:'v -> bool) -> boolval exists : ('k, 'v) t -> f:('v -> bool) -> boolval existsi : ('k, 'v) t -> f:(key:'k -> data:'v -> bool) -> boolval count : ('k, 'v) t -> f:('v -> bool) -> intval counti : ('k, 'v) t -> f:(key:'k -> data:'v -> bool) -> intval subrange : 
  ('k, 'v) t ->
  lower_bound:'k Maybe_bound.t ->
  upper_bound:'k Maybe_bound.t ->
  ('k, 'v) tval fold_range_inclusive : 
  ('k, 'v) t ->
  min:'k ->
  max:'k ->
  init:'acc ->
  f:(key:'k -> data:'v -> 'acc -> 'acc) ->
  'accval range_to_alist : ('k, 'v) t -> min:'k -> max:'k -> ('k * 'v) listval closest_key : 
  ('k, 'v) t ->
  [ `Greater_or_equal_to | `Greater_than | `Less_or_equal_to | `Less_than ] ->
  'k ->
  ('k * 'v) optionval nth : ('k, 'v) t -> int -> ('k * 'v) optionval nth_exn : ('k, 'v) t -> int -> 'k * 'vval rank : ('k, _) t -> 'k -> int optionval to_sequence : 
  ?order:[ `Increasing_key | `Decreasing_key ] ->
  ?keys_greater_or_equal_to:'k ->
  ?keys_less_or_equal_to:'k ->
  ('k, 'v) t ->
  ('k * 'v) Sequence.tval binary_search : 
  ('k, 'v) t ->
  compare:(key:'k -> data:'v -> 'key -> int) ->
  Binary_searchable.Which_target_by_key.t ->
  'key ->
  ('k * 'v) optionval binary_search_segmented : 
  ('k, 'v) t ->
  segment_of:(key:'k -> data:'v -> [ `Left | `Right ]) ->
  Binary_searchable.Which_target_by_segment.t ->
  ('k * 'v) optionval binary_search_subrange : 
  ('k, 'v) t ->
  compare:(key:'k -> data:'v -> 'bound -> int) ->
  lower_bound:'bound Maybe_bound.t ->
  upper_bound:'bound Maybe_bound.t ->
  ('k, 'v) tmodule Make_applicative_traversals
  (A : Applicative.Lazy_applicative) : 
  sig ... end