sig   type +'a t   val size : 'BatHeap.t -> int   val empty : 'BatHeap.t   val insert : 'BatHeap.t -> '-> 'BatHeap.t   val add : '-> 'BatHeap.t -> 'BatHeap.t   val merge : 'BatHeap.t -> 'BatHeap.t -> 'BatHeap.t   val find_min : 'BatHeap.t -> 'a   val del_min : 'BatHeap.t -> 'BatHeap.t   val of_list : 'a list -> 'BatHeap.t   val to_list : 'BatHeap.t -> 'a list   val elems : 'BatHeap.t -> 'a list   val of_enum : 'BatEnum.t -> 'BatHeap.t   val enum : 'BatHeap.t -> 'BatEnum.t   val print :     ?first:string ->     ?last:string ->     ?sep:string -> ('a, 'b) BatIO.printer -> ('BatHeap.t, 'b) BatIO.printer   module type H =     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   module Make :     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 end