code: public static <E> E at(long index, Iterator<E> iterator) {
          final Iterator<E> filtered = new FilteringIterator<E>(iterator, new AtIndex<E>(index));
          return new FirstElement<E>().apply(filtered);
      }
docs: Yields element at (0-based) position of the iterator.
  
  @param <E> the iterator element type
  @param index the element index
  @param iterator the iterator that will be consumed
  @return the element