private EvolutionStart<G, C>
	evolutionStart(final EvolutionStart<G, C> start) {
		final ISeq<Phenotype<G, C>> population = start.population();
		final long gen = start.generation();

		final Stream<Phenotype<G, C>> stream = Stream.concat(
			population.stream(),
			_genotypeFactory.instances()
				.map(gt -> Phenotype.of(gt, gen))
		);

		final ISeq<Phenotype<G, C>> pop = stream
			.limit(populationSize())
			.collect(ISeq.toISeq());

		return EvolutionStart.of(pop, gen);
	}
Evaluates the fitness function of the given population with the configured
{@link Evaluator} of this engine and returns a new population
with its fitness value assigned.

@since 5.0

@see Evaluator
@see Evaluator#eval(Seq)

@param population the population to evaluate
@return a new population with assigned fitness values
@throws IllegalStateException if the configured fitness function doesn't
        return a population with the same size as the input population.
        This exception is also thrown if one of the populations
        phenotype has no fitness value assigned.
jenetics/src/main/java/io/jenetics/engine/Engine.java