`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`