Fix Trac #1813: generalise over *all* type variables at top level, even phantom ones