functor (Ord : OrderedType) ->
  sig
    type key = Ord.t
    and +'a t
    val empty : 'a MoreLabels.Map.S.t
    val add :
      key:MoreLabels.Map.S.key ->
      data:'a -> 'a MoreLabels.Map.S.t -> 'a MoreLabels.Map.S.t
    val find : MoreLabels.Map.S.key -> 'a MoreLabels.Map.S.t -> 'a
    val remove :
      MoreLabels.Map.S.key -> 'a MoreLabels.Map.S.t -> 'a MoreLabels.Map.S.t
    val mem : MoreLabels.Map.S.key -> 'a MoreLabels.Map.S.t -> bool
    val iter :
      f:(key:MoreLabels.Map.S.key -> data:'a -> unit) ->
      'a MoreLabels.Map.S.t -> unit
    val map : f:('a -> 'b) -> 'a MoreLabels.Map.S.t -> 'b MoreLabels.Map.S.t
    val mapi :
      f:(MoreLabels.Map.S.key -> 'a -> 'b) ->
      'a MoreLabels.Map.S.t -> 'b MoreLabels.Map.S.t
    val fold :
      f:(key:MoreLabels.Map.S.key -> data:'a -> 'b -> 'b) ->
      'a MoreLabels.Map.S.t -> init:'b -> 'b
  end