Type/data family instances in kind checking
See Artem's blog post about this stuff; it's very helpful.
TcEnv.hs there is a note AFamDataCon: not promoting data family constructors. It states that we can't use a promoted data family instance constructor because we would have to interleave the checking of instances and data types. But with the fix of #11348 (closed), we now do exactly this. In the example from the note
data family T a data instance T Int = MkT data Proxy (a :: k) data S = MkS (Proxy 'MkT)
-ddump-rn-trace shows these groups
rnTycl dependency analysis made groups [[data family T a_apG]  [data instance T Int = MkT], [data Proxy (a_apF :: k_apE)]  , [data S = MkS (Proxy MkT)]  ]
That's to say, the instance
T Int will in fact be checked before
S. So let's remove this restriction.
|Component||Compiler (Type checker)|