code: public static IntegerChromosome of(final Iterable<IntegerGene> genes) {
  		final ISeq<IntegerGene> values = ISeq.of(genes);
  		checkGeneRange(values.stream().map(IntegerGene::range));
  		return new IntegerChromosome(values, IntRange.of(values.length()));
  	}
docs: Create a new {@code IntegerChromosome} with the given genes.
  
  @since 4.3
  
  @param genes the genes of the chromosome.
  @return a new chromosome with the given genes.
  @throws NullPointerException if the given {@code genes} are {@code null}
  @throws IllegalArgumentException if the of the genes iterable is empty or
  the given {@code genes} doesn't have the same range.