Previously, deriving Generic(1) bailed out when attempting to
instantiate visible type parameters (Trac #5939), but this instantiation
check was quite fragile and doesn't interact well with -XTypeInType. It has
been decided that Generic(1) shouldn't be subjected to this check anyway,
so it has been removed, and gen_Generic_binds's machinery has been updated
to substitute the type variables in a generated Rep/Rep1 instance with
the user-supplied type arguments.
In addition, this also refactors Condition in TcDeriv a bit. Namely,
since we no longer need tc_args to check any conditions, the [Type]
component of Condition has been removed.
Fixes Trac #11732.