Legend:

* contexts of type signarures, `newtype` and `data` declarations consist of assertions of the form C v or C (v t1 ... tn), where v is a type variable. Contexts on `newtype` and `data` declarations are RemovalCandidates.

9

* contexts of type signatures, `newtype` and `data` declarations consist of assertions of the form C v or C (v t,,1,, ... t,,n,,), where v is a type variable.

10

10

* contexts of `instance` and `class` declarations consist of assertions of the form C v, where v is a type variable.

11

11

The proposal is that class arguments in contexts of type signatures and `class` declarations may be arbitrary types, e.g.