sig
  val add : key:BatMap.S.key -> data:'-> 'BatMap.S.t -> 'BatMap.S.t
  val iter : f:(key:BatMap.S.key -> data:'-> unit) -> 'BatMap.S.t -> unit
  val map : f:('-> 'b) -> 'BatMap.S.t -> 'BatMap.S.t
  val mapi :
    f:(key:BatMap.S.key -> data:'-> 'b) -> 'BatMap.S.t -> 'BatMap.S.t
  val filterv : f:('-> bool) -> 'BatMap.S.t -> 'BatMap.S.t
  val filter :
    f:(BatMap.S.key -> '-> bool) -> 'BatMap.S.t -> 'BatMap.S.t
  val fold :
    f:(key:BatMap.S.key -> data:'-> '-> 'b) ->
    'BatMap.S.t -> init:'-> 'b
  val compare :
    cmp:('-> '-> int) -> 'BatMap.S.t -> 'BatMap.S.t -> int
  val equal :
    cmp:('-> '-> bool) -> 'BatMap.S.t -> 'BatMap.S.t -> bool
end