private static <G extends Gene<?, G>, C extends Comparable<? super C>>
	ISeq<Alterer<G, C>> normalize(final Seq<Alterer<G, C>> alterers) {
		final Function<Alterer<G, C>, Stream<Alterer<G, C>>> mapper =
			a -> a instanceof CompositeAlterer<G, C> ca
				? ca.alterers().stream()
				: Stream.of(a);

		return alterers.stream()
			.flatMap(mapper)
			.collect(toISeq());
	}
Combine the given alterers.

@param alterers the alterers to combine.
@throws NullPointerException if one of the alterers is {@code null}.
jenetics/src/main/java/io/jenetics/CompositeAlterer.java