abs_exports = new_exports, abs_binds = new_val_bind })
where
zonkExport env (tyvars, global, local, prags)
+ -- The tyvars are already zonked
= zonkIdBndr env global `thenM` \ new_global ->
mapM zonk_prag prags `thenM` \ new_prags ->
returnM (tyvars, new_global, zonkIdOcc env local, new_prags)
; ms' <- zonkIdBndrs env ms
; return (extendZonkEnv env (ds' ++ ms'), DictPat ds' ms') }
+zonk_pat env (CoPat co_fn pat ty)
+ = do { (env', co_fn') <- zonkCoFn env co_fn
+ ; (env'', pat') <- zonkPat env' (noLoc pat)
+ ; ty' <- zonkTcTypeToType env'' ty
+ ; return (env'', CoPat co_fn' (unLoc pat') ty') }
+
+zonk_pat env pat = pprPanic "zonk_pat" (ppr pat)
+
---------------------------
zonkConStuff env (PrefixCon pats)
= do { (env', pats') <- zonkPats env pats
zonkForeignExports env ls = mappM (wrapLocM (zonkForeignExport env)) ls
zonkForeignExport :: ZonkEnv -> ForeignDecl TcId -> TcM (ForeignDecl Id)
-zonkForeignExport env (ForeignExport i hs_ty spec isDeprec) =
- returnM (ForeignExport (fmap (zonkIdOcc env) i) undefined spec isDeprec)
+zonkForeignExport env (ForeignExport i hs_ty spec) =
+ returnM (ForeignExport (fmap (zonkIdOcc env) i) undefined spec)
zonkForeignExport env for_imp
= returnM for_imp -- Foreign imports don't need zonking
\end{code}