simplify production rules
be more precise about recursion marking