-----------------------
--- Notes for 'ctype'
--- We should probably use 'gentype' rather than 'type' in the LHS of type declarations
--- That would leave the only use of 'type' in 'ctype'; and only one of its occurrences
--- makes sense there too! So it might make sense to inline type there:
--- ctype : 'forall' tv_bndrs '.' ctype
--- | context '=>' ctype
--- | ipvar '::' gentype
--- | gentype
--- Which in turn would let us rename gentype to type
-