docs: public int indexesBinarySearch(int lowerBound, int upperBound, int[] idx) {
          int min = lowerBound;
          int max = upperBound;
  
          int mid = (max + min) / 2;
          int[] midIdx = getUnderlyingIndicesOf(mid).asInt();
          if (Arrays.equals(idx, midIdx)) {
              return mid;
          }
          if (ArrayUtil.lessThan(idx, midIdx)) {
              max = mid;
          }
          if (ArrayUtil.greaterThan(idx, midIdx)) {
              min = mid;
          }
          if (min == max) {
              return -1;
          }
          return indexesBinarySearch(min, max, idx);
      }