Functor Hash_heap.Make

module Make: 
functor (Key : Key) -> sig .. end
Parameters:
Key : Key

module Key: Key
type 'a t = {
   heap : (Key.t * 'a) Hash_heap.Heap.t;
   cmp : 'a -> 'a -> int;
   tbl : (Key.t * 'a) Hash_heap.Heap.Elt.t Table.t;
}
val create : ?min_size:int -> ('a -> 'a -> int) -> 'a t
val push : 'a t ->
key:Table.key Hash_heap.Hashtbl.key ->
data:'a -> [> `Key_already_present | `Ok ]
val push_exn : 'a t ->
key:Table.key Hash_heap.Hashtbl.key -> data:'a -> unit
val replace : 'a t ->
key:Table.key Hash_heap.Hashtbl.key -> data:'a -> unit
val remove : 'a t -> Table.key Hash_heap.Hashtbl.key -> unit
val mem : 'a t -> Table.key Hash_heap.Hashtbl.key -> bool
val top_with_key : 'a t -> (Key.t * 'a) option
val top : 'a t -> 'a option
val top_exn : 'a t -> 'a
val top_with_key_exn : 'a t -> Key.t * 'a
val pop_with_key_exn : 'a t -> Key.t * 'a
val pop_with_key : 'a t -> (Key.t * 'a) option
val pop : 'a t -> 'a option
val pop_exn : 'a t -> 'a
val pop_if_with_key : 'a t ->
(key:Key.t -> data:'a -> bool) ->
(Key.t * 'a) option
val pop_if : 'a t -> ('a -> bool) -> 'a option
val find : 'a t ->
Table.key Hash_heap.Hashtbl.key -> 'a option
val find_exn : 'a t -> Table.key Hash_heap.Hashtbl.key -> 'a
val find_pop : 'a t ->
Table.key Hash_heap.Hashtbl.key -> 'a option
val find_pop_exn : 'a t -> Table.key Hash_heap.Hashtbl.key -> 'a
val iter : 'a t ->
f:(key:Key.t -> data:'a -> unit) -> unit
val iter_vals : 'a t -> f:('a -> unit) -> unit
val length : 'a t -> int
val copy : 'a t -> 'a t