docs: public boolean matches(Iterable<? extends T> target) {
          Iterator<? extends T> iterator = target.iterator();
          for (int index = 0; index < this.index; index++) {
              if (iterator.hasNext()) {
                  iterator.next();
              } else {
                  return false;
              }
          }
          return iterator.hasNext() && matcher.matches(iterator.next());
      }