@Override
    public @NotNull Iterator<T> fun(@NotNull Iterator<? extends E> iterator) {
      return new FlattenIt<>(iterator, Stateful.copy(function));
    }
@Override
    public @NotNull Iterator<T> fun(@NotNull Iterator<? extends E> iterator)