static <T extends Gene<?, T>, C extends Comparable<? super C>>
	CompositeAlterer<T, C> join(
		final Alterer<T, C> a1,
		final Alterer<T, C> a2
	) {
		return CompositeAlterer.of(a1, a2);
	}
Joins the given alterer and returns a new CompositeAlterer object. If one
of the given alterers is a CompositeAlterer, the sub alterers of it are
unpacked and appended to the newly created CompositeAlterer.

@param <T> the gene type of the alterers.

@param <C> the fitness function result type
@param a1 the first alterer.
@param a2 the second alterer.
@return a new CompositeAlterer object.
@throws NullPointerException if one of the given alterers is {@code null}.
jenetics/src/main/java/io/jenetics/CompositeAlterer.java