code: public static <G extends Gene<?, G>> Genotype<G>
  	of(final Factory<? extends Chromosome<G>> factory, final int n) {
  		final ISeq<Chromosome<G>> ch = ISeq.of(factory::newInstance, n);
  		return new Genotype<>(ch);
  	}
docs: Create a new {@code Genotype} which consists of {@code n} chromosomes,
  which are created by the given {@code factory}. This method can be used
  for easily creating a <i>gene matrix</i>. The following example will
  create a 10x5 {@code DoubleGene} <i>matrix</i>.
  
  <pre>{@code
  final Genotype<DoubleGene> gt = Genotype
  .of(DoubleChromosome.of(0.0, 1.0, 10), 5);
  }</pre>
  
  @since 3.0
  
  @param <G> the gene type
  @param factory the factory which creates the chromosomes this genotype
  consists of
  @param n the number of chromosomes this genotype consists of
  @return new {@code Genotype} containing {@code n} chromosomes
  @throws IllegalArgumentException if {@code n < 1}.
  @throws NullPointerException if the {@code factory} is {@code null}.