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