Suppose we have type family T a :: * -> * type instance T Int =  and now we encounter the type (T Int Bool). That is perfectly fine, even though T is over-saturated here. This patch makes lookupFamInstEnv robust to such over-saturation. Previously one caller (TcTyFuns.tcUnfoldSynFamInst) dealt with the over-saturation case, but the others did not. It's better to desl with the issue at the root, in lookupFamInstEnv itself.
Showing with 34 additions and 12 deletions