sig
type 'a heap =
'a Heap.heap = {
mutable data : 'a array;
mutable size : int;
lessthan : 'a -> 'a -> bool;
}
val create : ('a -> 'a -> bool) -> int -> 'a Ext.Heap.heap
val realloc : 'a Ext.Heap.heap -> int -> unit
val size : 'a Ext.Heap.heap -> int
val is_empty : 'a Ext.Heap.heap -> bool
val grow : 'a Ext.Heap.heap -> unit
val swap : 'a Ext.Heap.heap -> int -> int -> unit
val sift_down : 'a Ext.Heap.heap -> int -> unit
val sift_up : 'a Ext.Heap.heap -> int -> unit
val add : 'a Ext.Heap.heap -> 'a -> unit
val remove_min : 'a Ext.Heap.heap -> unit
val get : 'a Ext.Heap.heap -> int -> 'a
val remove : 'a Ext.Heap.heap -> int -> unit
val min : 'a Ext.Heap.heap -> 'a
val rebuild : 'a Ext.Heap.heap -> unit
val build : ('a -> 'a -> bool) -> 'a array -> 'a Ext.Heap.heap
val remove_all : 'a Ext.Heap.heap -> ('a -> bool) -> unit
val clear : 'a Ext.Heap.heap -> unit
val iter : ('a -> 'b) -> 'a Ext.Heap.heap -> unit
val to_array : 'a Ext.Heap.heap -> 'a array
val to_list : 'a Ext.Heap.heap -> 'a list
end