sig   type elem   type t   val empty : BatHeap.H.t   val size : BatHeap.H.t -> int   val insert : BatHeap.H.t -> BatHeap.H.elem -> BatHeap.H.t   val add : BatHeap.H.elem -> BatHeap.H.t -> BatHeap.H.t   val merge : BatHeap.H.t -> BatHeap.H.t -> BatHeap.H.t   val find_min : BatHeap.H.t -> BatHeap.H.elem   val del_min : BatHeap.H.t -> BatHeap.H.t   val of_list : BatHeap.H.elem list -> BatHeap.H.t   val to_list : BatHeap.H.t -> BatHeap.H.elem list   val elems : BatHeap.H.t -> BatHeap.H.elem list   val of_enum : BatHeap.H.elem BatEnum.t -> BatHeap.H.t   val enum : BatHeap.H.t -> BatHeap.H.elem BatEnum.t   val print :     ?first:string ->     ?last:string ->     ?sep:string ->     (BatHeap.H.elem, 'a) BatIO.printer -> (BatHeap.H.t, 'a) BatIO.printer end