"Illegal type synonym family application in instance" error is unnecessary, should be removed
GHC shouldn't complain about "Illegal type synonym family application in instance", since there's an obvious workaround:
type family Fam t instance C (Fam Int)
type family Fam t instance (Fam Int ~ famint) => C famint
The programmer ought to be smart enough to notice that Fam is not a type-constructor, so "Fam Int" is going to overlap like a type-variable.
|Component||Compiler (Type checker)|