docs: private CASHInterval determineNextIntervalAtMaxLevel(ObjectHeap<CASHInterval> heap) {
      CASHInterval next = doDetermineNextIntervalAtMaxLevel(heap);
      // noise path was chosen
      while(next == null) {
        if(heap.isEmpty()) {
          return null;
        }
        next = doDetermineNextIntervalAtMaxLevel(heap);
      }
      return next;
    }