-
- orig_res_ty
- | Just (fam_tc, fam_tys) <- tyConFamInst_maybe tycon
- , let fam_subst = zipTopTvSubst (tyConTyVars tycon) res_tys
- = mkTyConApp fam_tc (substTys fam_subst fam_tys)
- | otherwise
- = mkTyConApp tycon res_tys
- where
- res_tys = substTyVars (mkTopTvSubst eq_spec) univ_tvs
- -- In the example above,
- -- univ_tvs = [ b1, c1 ]
- -- res_tys = [ b1, b1 ]