code: public static <A> AnyGene<A> of(
  		final Supplier<? extends A> supplier,
  		final Predicate<? super A> validator
  	) {
  		return new AnyGene<>(supplier.get(), supplier, validator);
  	}
docs: Create a new {@code AnyGene} instance with the given parameters. New
  (random) genes are created with the given allele {@code supplier}.
  
  @param <A> the allele type
  @param supplier the allele-supplier which is used for creating new,
  random alleles
  @param validator the validator used for validating the created gene. This
  predicate is used in the {@link #isValid()} method.
  @return a new {@code AnyGene} with the given parameters
  @throws NullPointerException if one of the parameters is {@code null}