sig
  type ('a, 'b, 'comparator) t
  type 'a key
  val is_empty : ('a, 'b, 'c) Core_map_intf.Accessors.t -> bool
  val length : ('a, 'b, 'c) Core_map_intf.Accessors.t -> int
  val add :
    ('k, 'v, 'comparator) Core_map_intf.Accessors.t ->
    key:'Core_map_intf.Accessors.key ->
    data:'-> ('k, 'v, 'comparator) Core_map_intf.Accessors.t
  val add_multi :
    ('k, 'v list, 'comparator) Core_map_intf.Accessors.t ->
    key:'Core_map_intf.Accessors.key ->
    data:'-> ('k, 'v list, 'comparator) Core_map_intf.Accessors.t
  val change :
    ('k, 'v, 'comparator) Core_map_intf.Accessors.t ->
    'Core_map_intf.Accessors.key ->
    ('v option -> 'v option) ->
    ('k, 'v, 'comparator) Core_map_intf.Accessors.t
  val find :
    ('k, 'v, 'a) Core_map_intf.Accessors.t ->
    'Core_map_intf.Accessors.key -> 'v option
  val find_exn :
    ('k, 'v, 'a) Core_map_intf.Accessors.t ->
    'Core_map_intf.Accessors.key -> 'v
  val remove :
    ('k, 'v, 'comparator) Core_map_intf.Accessors.t ->
    'Core_map_intf.Accessors.key ->
    ('k, 'v, 'comparator) Core_map_intf.Accessors.t
  val mem :
    ('k, 'a, 'b) Core_map_intf.Accessors.t ->
    'Core_map_intf.Accessors.key -> bool
  val iter :
    ('k, 'v, 'a) Core_map_intf.Accessors.t ->
    f:(key:'Core_map_intf.Accessors.key -> data:'-> unit) -> unit
  val map :
    ('k, 'v1, 'comparator) Core_map_intf.Accessors.t ->
    f:('v1 -> 'v2) -> ('k, 'v2, 'comparator) Core_map_intf.Accessors.t
  val mapi :
    ('k, 'v1, 'comparator) Core_map_intf.Accessors.t ->
    f:(key:'Core_map_intf.Accessors.key -> data:'v1 -> 'v2) ->
    ('k, 'v2, 'comparator) Core_map_intf.Accessors.t
  val fold :
    ('k, 'v, 'b) Core_map_intf.Accessors.t ->
    init:'->
    f:(key:'Core_map_intf.Accessors.key -> data:'-> '-> 'a) -> 'a
  val fold_right :
    ('k, 'v, 'b) Core_map_intf.Accessors.t ->
    init:'->
    f:(key:'Core_map_intf.Accessors.key -> data:'-> '-> 'a) -> 'a
  val filter :
    ('k, 'v, 'comparator) Core_map_intf.Accessors.t ->
    f:(key:'Core_map_intf.Accessors.key -> data:'-> bool) ->
    ('k, 'v, 'comparator) Core_map_intf.Accessors.t
  val filter_map :
    ('k, 'v1, 'comparator) Core_map_intf.Accessors.t ->
    f:('v1 -> 'v2 option) -> ('k, 'v2, 'comparator) Core_map_intf.Accessors.t
  val filter_mapi :
    ('k, 'v1, 'comparator) Core_map_intf.Accessors.t ->
    f:(key:'Core_map_intf.Accessors.key -> data:'v1 -> 'v2 option) ->
    ('k, 'v2, 'comparator) Core_map_intf.Accessors.t
  val compare :
    ('-> '-> int) ->
    ('k, 'v, 'comparator) Core_map_intf.Accessors.t ->
    ('k, 'v, 'comparator) Core_map_intf.Accessors.t -> int
  val equal :
    ('-> '-> bool) ->
    ('k, 'v, 'comparator) Core_map_intf.Accessors.t ->
    ('k, 'v, 'comparator) Core_map_intf.Accessors.t -> bool
  val keys :
    ('k, 'a, 'b) Core_map_intf.Accessors.t ->
    'Core_map_intf.Accessors.key list
  val data : ('a, 'v, 'b) Core_map_intf.Accessors.t -> 'v list
  val to_alist :
    ('k, 'v, 'a) Core_map_intf.Accessors.t ->
    ('Core_map_intf.Accessors.key * 'v) list
  val merge :
    ('k, 'v1, 'comparator) Core_map_intf.Accessors.t ->
    ('k, 'v2, 'comparator) Core_map_intf.Accessors.t ->
    f:(key:'Core_map_intf.Accessors.key ->
       [ `Both of 'v1 * 'v2 | `Left of 'v1 | `Right of 'v2 ] -> 'v3 option) ->
    ('k, 'v3, 'comparator) Core_map_intf.Accessors.t
  val min_elt :
    ('k, 'v, 'a) Core_map_intf.Accessors.t ->
    ('Core_map_intf.Accessors.key * 'v) option
  val min_elt_exn :
    ('k, 'v, 'a) Core_map_intf.Accessors.t ->
    'Core_map_intf.Accessors.key * 'v
  val max_elt :
    ('k, 'v, 'a) Core_map_intf.Accessors.t ->
    ('Core_map_intf.Accessors.key * 'v) option
  val max_elt_exn :
    ('k, 'v, 'a) Core_map_intf.Accessors.t ->
    'Core_map_intf.Accessors.key * 'v
  val for_all :
    ('k, 'v, 'a) Core_map_intf.Accessors.t -> f:('-> bool) -> bool
  val exists :
    ('k, 'v, 'a) Core_map_intf.Accessors.t -> f:('-> bool) -> bool
  val fold_range_inclusive :
    ('k, 'v, 'b) Core_map_intf.Accessors.t ->
    min:'Core_map_intf.Accessors.key ->
    max:'Core_map_intf.Accessors.key ->
    init:'->
    f:(key:'Core_map_intf.Accessors.key -> data:'-> '-> 'a) -> 'a
  val range_to_alist :
    ('k, 'v, 'a) Core_map_intf.Accessors.t ->
    min:'Core_map_intf.Accessors.key ->
    max:'Core_map_intf.Accessors.key ->
    ('Core_map_intf.Accessors.key * 'v) list
  val prev_key :
    ('k, 'v, 'a) Core_map_intf.Accessors.t ->
    'Core_map_intf.Accessors.key ->
    ('Core_map_intf.Accessors.key * 'v) option
  val next_key :
    ('k, 'v, 'a) Core_map_intf.Accessors.t ->
    'Core_map_intf.Accessors.key ->
    ('Core_map_intf.Accessors.key * 'v) option
  val rank :
    ('k, 'a, 'b) Core_map_intf.Accessors.t ->
    'Core_map_intf.Accessors.key -> int option
  type ('a, 'b, 'comparator) tree
  val to_tree :
    ('k, 'v, 'comparator) Core_map_intf.Accessors.t ->
    ('Core_map_intf.Accessors.key, 'v, 'comparator)
    Core_map_intf.Accessors.tree
end