Completeness proved modulo three cheats.

1. Left-recursion in the atomic type non-terminal:

     dtype ::= dtype tyop | (type) | tyvar | tyop | (tytuple) tyop

2. The base-level of the expression hierarchy

     ebase ::= int | var | (expr) | ...

   which is to be reorganised to allow tuples

3. The level above ebase (function application), which will be
   reorganised to become

     eapp ::= eapp ebase | ebase

   which will be another left-recursion.
Merged from origin/master