code: @NotNull
      public <R> Stream<R> mapIndexed(@NotNull IndexedFunction<? super T, ? extends R> mapper) {
          return this.<R>mapIndexed(0, 1, mapper);
      }
docs: Returns a {@code Stream} with elements that obtained by applying the given {@code IndexedFunction}.
  
  <p>This is an intermediate operation.
  
  <p>Example:
  <pre>
  predicate: (index, value) -&gt; (index * value)
  stream: [1, 2, 3,  4]
  index:  [0, 1, 2,  3]
  result: [0, 2, 6, 12]
  </pre>
  
  @param <R> the type of elements in resulting stream
  @param mapper  the mapper function used to apply to each element
  @return the new stream
  @since 1.1.6