This commit adds the very convenient function Subst.substTyWith :: [TyVar] -> [Type] -> Type -> Type and uses it in various places.