docs: private void heapifyDown(Entry<E> entry) {
      Entry<E> currentEntry = entry;
      Entry<E> bestEntry; // initialized below
  
      do {
        bestEntry = currentEntry;
  
        Entry<E> leftEntry = leftChild(currentEntry);
        if (leftEntry != null) {
          if (compare(bestEntry, leftEntry) < 0) {
            bestEntry = leftEntry;
          }
        }
  
        Entry<E> rightEntry = rightChild(currentEntry);
        if (rightEntry != null) {
          if (compare(bestEntry, rightEntry) < 0) {
            bestEntry = rightEntry;
          }
        }
  
        if (bestEntry != currentEntry) {
          // Swap min and current
          swap(bestEntry, currentEntry);
          // at start of next loop, we set currentIndex to largestIndex
          // this indexation now holds current, so it is unchanged
        }
      } while (bestEntry != currentEntry);
      // System.err.println("Done with heapify down");
      // verify();
    }