public static <A> AnyChromosome<A> of(
		final Supplier<? extends A> supplier,
		final Predicate<? super A> alleleValidator,
		final Predicate<? super ISeq<A>> alleleSeqValidator,
		final IntRange lengthRange
	) {
		return new AnyChromosome<>(
			AnyGene.seq(lengthRange, supplier, alleleValidator),
			supplier,
			alleleValidator,
			alleleSeqValidator,
			lengthRange
		);
	}
Create a new chromosome of type {@code A} with the given parameters.

@since 4.0

@param <A> the allele type
@param supplier the allele-supplier which is used for creating new,
       random alleles
@param alleleValidator the validator used for validating the created gene.
       This predicate is used in the {@link AnyGene#isValid()} method.
@param alleleSeqValidator the validator used for validating the created
       chromosome. This predicate is used in the
       {@link AnyChromosome#isValid()} method.
@param lengthRange the allowed length range of the chromosome
@return a new chromosome of allele type {@code A}
@throws NullPointerException if the given arguments is {@code null}
@throws IllegalArgumentException if chromosome length is smaller than one.
jenetics/src/main/java/io/jenetics/AnyChromosome.java