functor (Ord : BatInterfaces.OrderedType->
  sig
    type elem = Ord.t
    type t
    val empty : t
    val size : t -> int
    val insert : t -> elem -> t
    val add : elem -> t -> t
    val merge : t -> t -> t
    val find_min : t -> elem
    val del_min : t -> t
    val of_list : elem list -> t
    val to_list : t -> elem list
    val elems : t -> elem list
    val of_enum : elem BatEnum.t -> t
    val enum : t -> elem BatEnum.t
    val print :
      ?first:string ->
      ?last:string ->
      ?sep:string ->
      ('BatInnerIO.output -> elem -> unit) ->
      'BatInnerIO.output -> t -> unit
    val t_printer : elem BatValue_printer.t -> t BatValue_printer.t
  end