private Supplier<Spliterator<EvolutionResult<G, C>>> toSpliterator(
		final EvolutionStreamable<G, C> engine,
		final EvolutionInit<G> init,
		final AtomicReference<EvolutionStart<G, C>> other,
		final AtomicBoolean first
	) {
		return () -> {
			if (first.get()) {
				first.set(false);
				return engine.stream(init)
					.peek(result -> other.set(result.toEvolutionStart()))
					.spliterator();
			} else {
				return engine.stream(other::get)
					.peek(result -> other.set(result.toEvolutionStart()))
					.spliterator();
			}
		};

	}
Create a new cycling evolution engine with the given list of
{@code engines}.

@param engines the evolution engines which are part of the cycling engine
@throws NullPointerException if the {@code engines} or one of its
        elements is {@code null}
jenetics.ext/src/main/java/io/jenetics/ext/engine/CyclicEngine.java