AnyChromosome extends VariableChromosome<AnyGene<A>> { 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 ); } protected  AnyChromosome(
		final ISeq<AnyGene<A>> genes,
		final Supplier<? extends A> supplier,
		final Predicate<? super A> alleleValidator,
		final Predicate<? super ISeq<A>> alleleSeqValidator,
		final IntRange lengthRange
	); @Override boolean isValid(); @Override Chromosome<AnyGene<A>> newInstance(final ISeq<AnyGene<A>> genes); @Override Chromosome<AnyGene<A>> newInstance(); static AnyChromosome<A> of(
		final Supplier<? extends A> supplier,
		final Predicate<? super A> alleleValidator,
		final Predicate<? super ISeq<A>> alleleSeqValidator,
		final IntRange lengthRange
	); static AnyChromosome<A> of(
		final Supplier<? extends A> supplier,
		final Predicate<? super A> alleleValidator,
		final Predicate<? super ISeq<A>> alleleSeqValidator,
		final int length
	); static AnyChromosome<A> of(
		final Supplier<? extends A> supplier,
		final Predicate<? super A> validator,
		final IntRange lengthRange
	); static AnyChromosome<A> of(
		final Supplier<? extends A> supplier,
		final Predicate<? super A> validator,
		final int length
	); static AnyChromosome<A> of(
		final Supplier<? extends A> supplier,
		final Predicate<? super A> validator
	); static AnyChromosome<A> of(
		final Supplier<? extends A> supplier,
		final IntRange lengthRange
	); static AnyChromosome<A> of(
		final Supplier<? extends A> supplier,
		final int length
	); static AnyChromosome<A> of(final Supplier<? extends A> supplier);  }
@Test public void create() { AnyChromosome.of( () -> "foo", AnyChromosomeTest::alleleValidator ); AnyChromosome.of( () -> "foo", AnyChromosomeTest::alleleValidator, 3 ); AnyChromosome.of( () -> "foo", a -> true, AnyChromosomeTest::alleleSeqValidator, 3 ); AnyChromosome.of( () -> "foo", a -> true, a -> true, 3 ); AnyChromosome.of( () -> "foo", AnyChromosomeTest::alleleValidator, AnyChromosomeTest::alleleSeqValidator, 3 ); }