module type S =sig..end
type elt 
type t 
val empty : tval is_empty : t -> boolexception Empty
val merge : t -> t -> tval insert : elt -> t -> tval add : t -> elt -> tCCHeap.S.insertval filter : (elt -> bool) -> t -> tval find_min : t -> elt optionval find_min_exn : t -> elt
val take : t -> (t * elt) optionNone if the heap is emptyval take_exn : t -> t * elt
val iter : (elt -> unit) -> t -> unitval fold : ('a -> elt -> 'a) -> 'a -> t -> 'aval size : t -> int
      The interface of of_gen, of_seq, of_klist
      has changed
val to_list : t -> elt listval to_list_sorted : t -> elt listval add_list : t -> elt list -> tval of_list : elt list -> tof_list l = add_list empty lval add_seq : t -> elt CCHeap.sequence -> tCCHeap.S.add_listval of_seq : elt CCHeap.sequence -> t
val to_seq : t -> elt CCHeap.sequence
val to_seq_sorted : t -> elt CCHeap.sequenceval add_klist : t -> elt CCHeap.klist -> tval of_klist : elt CCHeap.klist -> t
val to_klist : t -> elt CCHeap.klist
val add_gen : t -> elt CCHeap.gen -> tval of_gen : elt CCHeap.gen -> t
val to_gen : t -> elt CCHeap.gen
val to_tree : t -> elt CCHeap.ktree
val print : ?sep:string -> elt CCHeap.printer -> t CCHeap.printer