sig
  type ('a, 'b, 'c) t = ('a, 'b, 'c) Core.Std.Map.t
  val change :
    ('k, 'v, 'comparator) Deferred_intf.Deferred_map.t ->
    'k ->
    ('v option -> 'v option Deferred_intf.Deferred.t) ->
    ('k, 'v, 'comparator) Deferred_intf.Deferred_map.t
    Deferred_intf.Deferred.t
  val iter :
    ?how:Deferred_intf.how ->
    ('k, 'v, 'a) Deferred_intf.Deferred_map.t ->
    f:(key:'k -> data:'v -> unit Deferred_intf.Deferred.t) ->
    unit Deferred_intf.Deferred.t
  val map :
    ?how:Deferred_intf.how ->
    ('k, 'v1, 'comparator) Deferred_intf.Deferred_map.t ->
    f:('v1 -> 'v2 Deferred_intf.Deferred.t) ->
    ('k, 'v2, 'comparator) Deferred_intf.Deferred_map.t
    Deferred_intf.Deferred.t
  val mapi :
    ?how:Deferred_intf.how ->
    ('k, 'v1, 'comparator) Deferred_intf.Deferred_map.t ->
    f:(key:'k -> data:'v1 -> 'v2 Deferred_intf.Deferred.t) ->
    ('k, 'v2, 'comparator) Deferred_intf.Deferred_map.t
    Deferred_intf.Deferred.t
  val fold :
    ('k, 'v, 'b) Deferred_intf.Deferred_map.t ->
    init:'a ->
    f:(key:'k -> data:'v -> 'a -> 'a Deferred_intf.Deferred.t) ->
    'a Deferred_intf.Deferred.t
  val fold_right :
    ('k, 'v, 'b) Deferred_intf.Deferred_map.t ->
    init:'a ->
    f:(key:'k -> data:'v -> 'a -> 'a Deferred_intf.Deferred.t) ->
    'a Deferred_intf.Deferred.t
  val filter :
    ?how:Deferred_intf.how ->
    ('k, 'v, 'comparable) Deferred_intf.Deferred_map.t ->
    f:(key:'k -> data:'v -> bool Deferred_intf.Deferred.t) ->
    ('k, 'v, 'comparable) Deferred_intf.Deferred_map.t
    Deferred_intf.Deferred.t
  val filter_map :
    ?how:Deferred_intf.how ->
    ('k, 'v1, 'comparable) Deferred_intf.Deferred_map.t ->
    f:('v1 -> 'v2 option Deferred_intf.Deferred.t) ->
    ('k, 'v2, 'comparable) Deferred_intf.Deferred_map.t
    Deferred_intf.Deferred.t
  val filter_mapi :
    ?how:Deferred_intf.how ->
    ('k, 'v1, 'comparable) Deferred_intf.Deferred_map.t ->
    f:(key:'k -> data:'v1 -> 'v2 option Deferred_intf.Deferred.t) ->
    ('k, 'v2, 'comparable) Deferred_intf.Deferred_map.t
    Deferred_intf.Deferred.t
  val merge :
    ?how:Deferred_intf.how ->
    ('k, 'v1, 'comparator) Deferred_intf.Deferred_map.t ->
    ('k, 'v2, 'comparator) Deferred_intf.Deferred_map.t ->
    f:(key:'k ->
       [ `Both of 'v1 * 'v2 | `Left of 'v1 | `Right of 'v2 ] ->
       'v3 option Deferred_intf.Deferred.t) ->
    ('k, 'v3, 'comparator) Deferred_intf.Deferred_map.t
    Deferred_intf.Deferred.t
end