code: @NotNull
      public Stream<T> takeUntilIndexed(int from, int step,
                                        @NotNull IndexedPredicate<? super T> stopPredicate) {
          return new Stream<T>(params, new ObjTakeUntilIndexed<T>(
                  new IndexedIterator<T>(from, step, iterator),
                  stopPredicate));
      }
docs: Takes elements while the {@code IndexedPredicate} returns {@code false}.
  Once predicate condition is satisfied by an element, the stream
  finishes with this element.
  
  <p>This is an intermediate operation.
  
  <p>Example:
  <pre>
  from: 2
  step: 2
  stopPredicate: (index, value) -&gt; (index + value) &gt; 8
  stream: [1, 2, 3,  4,  0,  1,  2]
  index:  [2, 4, 6,  8, 10, 11, 14]
  sum:    [3, 6, 9, 12, 10, 12, 16]
  result: [1, 2, 3]
  </pre>
  
  @param from  the initial value of the index (inclusive)
  @param step  the step of the index
  @param stopPredicate  the {@code IndexedPredicate} used to take elements
  @return the new stream
  @since 1.1.6