docs: protected int removeHeapNode(int i)
      {
          int val = heap[i];
          int rightMost = --size;
          heap[i] = heap[rightMost];
          heap[rightMost] = 0;
          if(fastValueRemove == Mode.HASH)
          {
              valueIndexMap.remove(val);
              if(size != 0)
                  valueIndexMap.put(heap[i], i);
          }
          else if(fastValueRemove == Mode.BOUNDED)
          {
              valueIndexStore[val] = -1;
          }
          heapDown(i);
          return val;
      }