code: public static <G extends Gene<?, G>>
  	EvolutionInit<G> of(
  		final ISeq<Genotype<G>> population,
  		final long generation
  	) {
  		return new EvolutionInit<>(population, generation);
  	}
docs: Create a new evolution start object with the given population and for the
  given generation.
  
  @param <G> the gene type
  @param population the start population.
  @param generation the start generation of the population
  @return a new evolution start object
  @throws java.lang.NullPointerException if the given {@code population} is
  {@code null}.
  @throws IllegalArgumentException if the given {@code generation} is
  smaller then one