The validity check which rejected things like:
type family B x where A x = x
Used to live in the typechecker. But it turns out that this validity
check was only being run on closed type families without CUSKs!
This meant that GHC would silently accept something like this:
type family B (x :: *) :: * where A x = x
This patch fixes the issue by moving this validity check to the
renamer, where we can be sure that the check will always be run.