docs: @Override
    public I getItem(int relativeOffset, Function<? super Integer, I> endFunction) {
      int index = wordIndex + relativeOffset;
  
      if (index < 0) {
        return endFunction.apply(index);
      } else if (index >= items.size()) {
        int endWordIndex = index - (items.size() - 1);
        return endFunction.apply(endWordIndex);
      } else {
        return items.get(index);
      }
    }