public static <
			A,
			G extends Gene<A, G>,
			C extends Chromosome<G>
		>
		Writer<Collection<io.jenetics.Genotype<G>>>
		writer(final Writer<? super C> writer) {
			return elem(
				ROOT_NAME,
				attr(LENGTH_NAME).map(Collection::size),
				elems(Genotype.writer(writer))
			);
		}
Create a writer for genotypes of arbitrary chromosomes. How to write the
genotype chromosomes is defined by the given {@link Writer}. The
following writer allows writing double-gene chromosomes:
{@snippet lang="java":
final Writer<Collection<Genotype<DoubleGene>>> writer =
    Writers.Genotypes.writer(Writers.DoubleChromosome.writer());
}

@param writer the chromosome writer
@param <A> the allele type
@param <G> the gene type
@param <C> the chromosome type
@return a new genotype writer
@throws NullPointerException if the given chromosome {@code writer} is
        {@code null}
jenetics.xml/src/main/java/io/jenetics/xml/Writers.java