docs: public static <T> PermutationChromosome<T> of(
  		final ISeq<? extends T> alleles,
  		final int length
  	) {
  		require.positive(length);
  		if (length > alleles.size()) {
  			throw new IllegalArgumentException(format(
  				"The sub-set size must be be greater then the base-set: %d > %d",
  				length, alleles.size()
  			));
  		}
  
  		final int[] subset = array.shuffle(comb.subset(alleles.size(), length));
  		final ISeq<EnumGene<T>> genes = IntStream.of(subset)
  			.mapToObj(i -> EnumGene.<T>of(i, alleles))
  			.collect(ISeq.toISeq());
  
  		return new PermutationChromosome<>(genes, true);
  	}