@Override
		public Expression<T> at(final Object annotation) {
			return annotation == this.annotation
				? this
				: new Expression<>(symbols, annotation);
		}
@param symbols the expression symbols
@throws IllegalArgumentException if the list of {@code symbols} is
        empty
jenetics.ext/src/main/java/io/jenetics/ext/grammar/Cfg.java