@SuppressWarnings("unchecked")
	static <A, B extends A> Cfg<A> upcast(final Cfg<B> seq) {
		return (Cfg<A>)seq;
	}
Create a grammar object with the given rules.

@param rules the rules the grammar consists of
@throws IllegalArgumentException if the list of rules is empty or there
        are duplicate rules
@throws NullPointerException if the list of rules is {@code null}
jenetics.ext/src/main/java/io/jenetics/ext/grammar/Cfg.java