simplify grammar by using new features
simplify the grammar using unfoldable opt
simplify the grammar
improve ! as application instead of fields
tweak