public static <T, R> Codec<R, IntegerGene>
	multiIntegerChromosomeMapper(
		final Cfg<? extends T> cfg,
		final Function<? super Rule<?>, IntRange> length,
		final Function<? super SymbolIndex, ? extends Generator<T, R>> generator
	) {
		return new MultiIntegerChromosomeMapper<>(cfg, length, generator);
	}
Codec for creating <em>results</em> from a given grammar. The creation of
the grammar result is controlled by a given genotype. This encoding uses
separate <em>codons</em>, backed up by a {@link IntegerChromosome}, for
every rule. The length of the chromosome is defined as a function of the
encoded rules. This means that the following CFG,

<pre>{@code
                      (0)            (1)
(0) <expr> ::= (<expr><op><expr>) | <var>
              (0) (1) (2) (3)
(1) <op>   ::= + | - | * | /
              (0) (1) (2) (3) (4)
(2) <var>  ::= x | 1 | 2 | 3 | 4
}</pre>

will be represented by the following {@link Genotype}
{@snippet lang="java":
Genotype.of(
    IntegerChromosome.of(IntRange.of(0, 2), length.apply(cfg.rules().get(0))),
    IntegerChromosome.of(IntRange.of(0, 4), length.apply(cfg.rules().get(1))),
    IntegerChromosome.of(IntRange.of(0, 5), length.apply(cfg.rules().get(2)))
)
}

The {@code length} function lets you defining the number of codons as
function of the rule the chromosome is encoding.
{@snippet lang="java":
final Cfg<String> cfg = Bnf.parse(null); // @replace substring='null' replacement="..."
final Codec<List<Terminal<String>>, IntegerGene> codec = multiIntegerChromosomeMapper(
    cfg,
    // The chromosome length is 25 times the
    // number of rule alternatives.
    rule -> IntRange.of(rule.alternatives().size()*25),
    // Using the standard sentence generator
    // with a maximal sentence length of 500.
    index -> new SentenceGenerator<>(index, 500)
);
}

@param cfg the encoding grammar
@param length the length of the chromosome which is used for selecting
       rules and symbols. The input parameter for this function is the
       actual rule. This way it is possible to define the chromosome
       length dependent on the selectable alternatives.
@param generator sentence generator function from a given
       {@link SymbolIndex}
@param <T> the terminal token type of the grammar
@param <R> the result type of the mapper
@return a new mapping codec for the given {@code cfg}
jenetics.ext/src/main/java/io/jenetics/ext/grammar/Mappers.java