sig   type elt   type t   val empty : CCHeap.S.t   val is_empty : CCHeap.S.t -> bool   exception Empty   val merge : CCHeap.S.t -> CCHeap.S.t -> CCHeap.S.t   val insert : CCHeap.S.elt -> CCHeap.S.t -> CCHeap.S.t   val add : CCHeap.S.t -> CCHeap.S.elt -> CCHeap.S.t   val filter : (CCHeap.S.elt -> bool) -> CCHeap.S.t -> CCHeap.S.t   val find_min : CCHeap.S.t -> CCHeap.S.elt option   val find_min_exn : CCHeap.S.t -> CCHeap.S.elt   val take : CCHeap.S.t -> (CCHeap.S.t * CCHeap.S.elt) option   val take_exn : CCHeap.S.t -> CCHeap.S.t * CCHeap.S.elt   val iter : (CCHeap.S.elt -> unit) -> CCHeap.S.t -> unit   val fold : ('-> CCHeap.S.elt -> 'a) -> '-> CCHeap.S.t -> 'a   val size : CCHeap.S.t -> int   val to_list : CCHeap.S.t -> CCHeap.S.elt list   val to_list_sorted : CCHeap.S.t -> CCHeap.S.elt list   val add_list : CCHeap.S.t -> CCHeap.S.elt list -> CCHeap.S.t   val of_list : CCHeap.S.elt list -> CCHeap.S.t   val add_seq : CCHeap.S.t -> CCHeap.S.elt CCHeap.sequence -> CCHeap.S.t   val of_seq : CCHeap.S.elt CCHeap.sequence -> CCHeap.S.t   val to_seq : CCHeap.S.t -> CCHeap.S.elt CCHeap.sequence   val to_seq_sorted : CCHeap.S.t -> CCHeap.S.elt CCHeap.sequence   val add_klist : CCHeap.S.t -> CCHeap.S.elt CCHeap.klist -> CCHeap.S.t   val of_klist : CCHeap.S.elt CCHeap.klist -> CCHeap.S.t   val to_klist : CCHeap.S.t -> CCHeap.S.elt CCHeap.klist   val add_gen : CCHeap.S.t -> CCHeap.S.elt CCHeap.gen -> CCHeap.S.t   val of_gen : CCHeap.S.elt CCHeap.gen -> CCHeap.S.t   val to_gen : CCHeap.S.t -> CCHeap.S.elt CCHeap.gen   val to_tree : CCHeap.S.t -> CCHeap.S.elt CCHeap.ktree   val print :     ?sep:string -> CCHeap.S.elt CCHeap.printer -> CCHeap.S.t CCHeap.printer end