public static <G extends Gene<?, G>, C extends Comparable<? super C>>
	Alterer<G, C> of(final Alterer<G, C> alterer, final IntRange section) {
		return new PartialAlterer<>(
			alterer,
			new Projection(section.stream().toArray())
		);
	}
Wraps the given {@code alterer}, so that it will only work on chromosomes
with the given chromosome indices.

@see #of(Alterer, int...)

@param alterer the alterer to user for altering the chromosomes with the
       given {@code indices}
@param section the half-open chromosome index range {@code [min, max)}
@param <G> the gene type
@param <C> the fitness value type
@return a wrapped alterer which only works for the given chromosome
        section
@throws NullPointerException if the given {@code indices} array is
        {@code null}
@throws IllegalArgumentException if the given {@code indices} array is
        empty
@throws NegativeArraySizeException if one of the given {@code indices} is
        negative
jenetics/src/main/java/io/jenetics/PartialAlterer.java