-- and *including* existential dictionaries
dcRepStrictness :: [StrictnessMark], -- One for each *representation* argument
+ -- See also Note [Data-con worker strictness] in MkId.lhs
dcRepType :: Type, -- Type of the constructor
-- forall a x y. (a:=:(x,y), Ord x) => x -> y -> MkT a
mkFunTys (mkPredTys theta) $
mkFunTys arg_tys $
case tyConFamInst_maybe tycon of
- Nothing -> mkTyConApp tycon (map (substTyVar subst) univ_tvs)
+ Nothing -> mkTyConApp tycon (substTyVars subst univ_tvs)
Just (ftc, insttys) -> mkTyConApp ftc insttys -- data instance
where
subst = mkTopTvSubst eq_spec