The parser was seriously limited (no priorities, no expressions, just lists)

This should improve the situation.
Also, better typing overall of intermediate structures.