Migrate cvs diff from fptools-assoc branch
[ghc-hetmet.git] / compiler / typecheck / TcHsSyn.lhs
index 6389f34..47231fb 100644 (file)
@@ -301,6 +301,7 @@ zonk_bind env (AbsBinds { abs_tvs = tyvars, abs_dicts = dicts,
                        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)
@@ -776,6 +777,14 @@ zonk_pat env (DictPat ds ms)
        ; 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
@@ -811,8 +820,8 @@ zonkForeignExports :: ZonkEnv -> [LForeignDecl TcId] -> TcM [LForeignDecl Id]
 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}