protected @NotNull <S, SelfS extends FilteredTraverserBase<S, ?>> SelfS mapImpl(@NotNull Function<? super T, ? extends S> function) {
    Meta<S> meta = new Meta<>(
      JBIterable.empty(), myMeta.traversal, Functions.constant(JBIterable.empty()),
      Cond.TRUE, Cond.TRUE, Cond.TRUE, Cond.FALSE, Cond.FALSE, Cond.FALSE,
      original -> new MappedTraversal<T, S>(original, myMeta, JBIterable.Stateful.copy(function)), myMeta);
    //noinspection unchecked
    return (SelfS)newInstance((Meta<T>)meta);
  }
protected @NotNull <S, SelfS extends FilteredTraverserBase<S, ?>> SelfS mapImpl(@NotNull Function<? super T, ? extends S> function)