Also, I'll note that parser.out shows that lemon.c is aware of the distinction between cases (2) and (3), so the problem is probably strictly in the table generation: ``` KW_IF shift 26 error shift-reduce 68 data_elts ::= error type shift-reduce 69 data_elts ::= type ... KW_IF shift 26 error shift 162 pattern shift 102 ```