sig
exception Empty
type 'el t
val length : 'a t -> int
val is_empty : 'a t -> bool
val iter : 'a t -> f:('a -> unit) -> unit
val fold : 'a t -> init:'accum -> f:('accum -> 'a -> 'accum) -> 'accum
val exists : 'a t -> f:('a -> bool) -> bool
val for_all : 'a t -> f:('a -> bool) -> bool
val count : 'a t -> f:('a -> bool) -> int
val find : 'a t -> f:('a -> bool) -> 'a option
val find_map : 'a t -> f:('a -> 'b option) -> 'b option
val to_list : 'a t -> 'a list
val to_array : 'a t -> 'a array
type 'el heap_el
val heap_el_is_valid : 'el Heap.heap_el -> bool
val heap_el_get_el : 'el Heap.heap_el -> 'el
val heap_el_get_heap_exn : 'el Heap.heap_el -> 'el Heap.t
val get_cmp : 'el Heap.t -> 'el -> 'el -> int
val create : ?min_size:int -> ('el -> 'el -> int) -> 'el Heap.t
val of_array :
?min_size:int -> ('el -> 'el -> int) -> 'el array -> 'el Heap.t
val copy : 'el Heap.t -> 'el Heap.t
val mem : 'el Heap.t -> 'el -> bool
val heap_el_mem : 'el Heap.t -> 'el Heap.heap_el -> bool
val find_heap_el_exn : 'el Heap.t -> 'el -> 'el Heap.heap_el
val top : 'el Heap.t -> 'el option
val top_exn : 'el Heap.t -> 'el
val top_heap_el : 'el Heap.t -> 'el Heap.heap_el option
val top_heap_el_exn : 'el Heap.t -> 'el Heap.heap_el
val fold_el : 'a Heap.t -> init:'b -> f:('b -> 'a Heap.heap_el -> 'b) -> 'b
val iter_el : 'a Heap.t -> f:('a Heap.heap_el -> unit) -> unit
val pop : 'el Heap.t -> 'el option
val pop_exn : 'el Heap.t -> 'el
val pop_heap_el : 'el Heap.t -> 'el Heap.heap_el option
val pop_heap_el_exn : 'el Heap.t -> 'el Heap.heap_el
val cond_pop : 'el Heap.t -> ('el -> bool) -> 'el option
val cond_pop_heap_el :
'el Heap.t -> ('el -> bool) -> 'el Heap.heap_el option
val push : 'el Heap.t -> 'el -> 'el Heap.heap_el
val push_heap_el : 'el Heap.t -> 'el Heap.heap_el -> unit
val remove : 'el Heap.heap_el -> unit
val update : 'el Heap.heap_el -> 'el -> unit
val check_heap_property : 'el Heap.t -> bool
val sexp_of_t : ('el -> Sexplib.Sexp.t) -> 'el Heap.t -> Sexplib.Sexp.t
val sexp_of_heap_el :
('el -> Sexplib.Sexp.t) -> 'el Heap.heap_el -> Sexplib.Sexp.t
end