code: public static <G extends Gene<?, G>, C extends Comparable<? super C>>
  	Builder<G, C> builder(
  		final Function<? super Genotype<G>, ? extends C> ff,
  		final Factory<Genotype<G>> genotypeFactory
  	) {
  		return new Builder<>(genotypeFactory, ff);
  	}
docs: Create a new evolution {@code Engine.Builder} with the given fitness
  function and genotype factory.
  
  @param ff the fitness function
  @param genotypeFactory the genotype factory
  @param <G> the gene type
  @param <C> the fitness function result type
  @return a new engine builder
  @throws java.lang.NullPointerException if one of the arguments is
  {@code null}.