type 'a t = 'a Hash_heap.Make(Transaction_snark.Statement).tval create : ?min_size:int -> ( 'a -> 'a -> int ) -> 'a tval push : 'a t -> key:Key.t -> data:'a -> [ `Key_already_present | `Ok ]val push_exn : 'a t -> key:Key.t -> data:'a -> unitval replace : 'a t -> key:Key.t -> data:'a -> unitval remove : 'a t -> Key.t -> unitval mem : 'a t -> Key.t -> boolval top : 'a t -> 'a optionval top_with_key : 'a t -> (Key.t * 'a) optionval top_with_key_exn : 'a t -> Key.t * 'aval pop_with_key : 'a t -> (Key.t * 'a) optionval pop_with_key_exn : 'a t -> Key.t * 'aval pop : 'a t -> 'a optionval pop_if_with_key :
'a t ->
( key:Key.t -> data:'a -> bool ) ->
(Key.t * 'a) optionval pop_if : 'a t -> ( 'a -> bool ) -> 'a optionval find : 'a t -> Key.t -> 'a optionval find_pop : 'a t -> Key.t -> 'a optionval find_exn : 'a t -> Key.t -> 'aval find_pop_exn : 'a t -> Key.t -> 'aval iter_keys : 'a t -> f:( Key.t -> unit ) -> unitval iter : 'a t -> f:( 'a -> unit ) -> unitval iteri : 'a t -> f:( key:Key.t -> data:'a -> unit ) -> unitval to_alist : 'a t -> (Key.t * 'a) list