; traceTc (text "tc_sub_spec" <+> vcat [ppr actual_ty,
ppr tyvars <+> ppr theta <+> ppr tau,
ppr tau'])
- ; co_fn2 <- tc_sub mb_fun tau tau exp_ib exp_sty expected_ty
+ ; co_fn2 <- tc_sub mb_fun tau' tau' exp_ib exp_sty expected_ty
-- Deal with the dictionaries
- ; co_fn1 <- instCall InstSigOrigin (mkTyVarTys tyvars) theta
- ; co_fn2 <- tc_sub False tau tau exp_sty expected_ty
+ ; co_fn1 <- instCall InstSigOrigin inst_tys (substTy subst' theta)
; return (co_fn2 <.> co_fn1) }
-----------------------------------