code: public EvolutionResult<G, C> evolve(
  		final ISeq<Phenotype<G, C>> population,
  		final long generation
  	) {
  		return evolve(EvolutionStart.of(population, generation));
  	}
docs: Perform one evolution step with the given {@code population} and
  {@code generation}. New phenotypes are created with the fitness function
  and fitness scaler defined by this <em>engine</em>
  <p>
  <em>This method is thread-safe.</em>
  
  @see #evolve(EvolutionStart)
  
  @param population the population to evolve
  @param generation the current generation; used for calculating the
  phenotype age.
  @return the evolution result
  @throws java.lang.NullPointerException if the given {@code population} is
  {@code null}
  @throws IllegalArgumentException if the given {@code generation} is
  smaller then one