docs: public static <T> Iterator<T> merge(Comparator<T> comp, Iterator<T>... iterators)
      {
          switch (iterators.length)
          {
              case 0:
                  throw new IllegalArgumentException("no iterables");
              case 1:
                  return iterators[0];
              case 2:
                  return new IteratorImpl<>(comp, iterators[0], iterators[1]);
              default:
                  return new IteratorImpl<>(comp, iterators[0], merge(comp, Arrays.copyOfRange(iterators, 1, iterators.length)));
          }
      }