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