The Heap collection of modules provide routines that manage a heap of elements.
A heap is a partially sorted structure that is always able to easily extract
the smallest of the elements in the structure (or the largest if a reversed
compare routine is provided).