patterns and types of symbols are now written via with_grammar on RuleItem