E : PARTIAL_ORDExtract and return the minimum element, and the new heap (without
this element), or None if the heap is empty.
Delete one occurrence of a value if it exist in the heap.
delete_one eq x h, use eq to find one x in h and delete it.
If h do not contain x then it return h.
Delete all occurrences of a value in the heap.
delete_all eq x h, use eq to find all x in h and delete them.
If h do not contain x then it return h.
The difference with filter is that delete_all stops as soon as
it enters a subtree whose root is bigger than the element.
The interface of of_gen, of_seq, of_klist
has changed since 0.16 (the old signatures
are now add_seq, add_gen, add_klist).