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 -> (elem, 'a) BatIO.printer -> (t, 'a) BatIO.printer
  end