@Override
			@SuppressWarnings("unchecked")
			public Function<T, Genotype<G>> encoder() {
				return (Function<T, Genotype<G>>)encoder;
			}
Create a new invertible codec from the given parameters.

@param encoding the genotype factory used for creating new
       {@code Genotypes}
@param decoder decoder function, which converts a {@link Genotype} to a
       value in the problem domain.
@param encoder encoder function, which converts a value of the problem
       domain into a {@link Genotype}
@param <G> the {@link Gene} type
@param <T> the fitness function argument type in the problem domain
@return a new {@link InvertibleCodec} object with the given parameters.
@throws NullPointerException if one of the arguments is {@code null}.
jenetics/src/main/java/io/jenetics/engine/InvertibleCodec.java