foldrTc, foldlTc, mapAndUnzipTc, mapAndUnzip3Tc,
mapBagTc, fixTc, tryTc,
- returnNF_Tc, thenNF_Tc, thenNF_Tc_, mapNF_Tc,
+ returnNF_Tc, thenNF_Tc, thenNF_Tc_, mapNF_Tc, fixNF_Tc,
listNF_Tc, mapAndUnzipNF_Tc, mapBagNF_Tc,
checkTc, checkTcM, checkMaybeTc, checkMaybeTcM,
tcNewMutVar, tcReadMutVar, tcWriteMutVar,
- rn4MtoTcM,
+ rnMtoTcM,
TcError(..), TcWarning(..),
mkTcErr, arityErr,
Warning(..) )
import SST
---import RnMonad4
---LATER:import RnUtils ( GlobalNameMappers(..), GlobalNameMapper(..) )
+import RnMonad ( RnM(..), RnDown, initRn, setExtraRn )
+import RnUtils ( RnEnv(..) )
import Bag ( Bag, emptyBag, isEmptyBag,
foldBag, unitBag, unionBags, snocBag )
returnNF_Tc :: a -> NF_TcM s a
returnNF_Tc v down env = returnSST v
+fixNF_Tc :: (a -> NF_TcM s a) -> NF_TcM s a
+fixNF_Tc m env down = fixSST (\ loop -> m loop env down)
+
mapNF_Tc :: (a -> NF_TcM s b) -> [a] -> NF_TcM s [b]
mapNF_Tc f [] = returnNF_Tc []
mapNF_Tc f (x:xs) = f x `thenNF_Tc` \ r ->
%~~~~~~~~~~~~~~~~~~
\begin{code}
-rn4MtoTcM = panic "TcMonad.rn4MtoTcM (ToDo LATER)"
-{- LATER:
-rn4MtoTcM :: GlobalNameMappers -> Rn4M a -> NF_TcM s (a, Bag Error)
+rnMtoTcM :: RnEnv -> RnM _RealWorld a -> NF_TcM s (a, Bag Error)
-rn4MtoTcM name_funs rn_action down env
+rnMtoTcM rn_env rn_action down env
= readMutVarSST u_var `thenSST` \ uniq_supply ->
let
(new_uniq_supply, uniq_s) = splitUniqSupply uniq_supply
in
writeMutVarSST u_var new_uniq_supply `thenSST_`
let
- (rn_result, rn_errs)
- = rn_action name_funs emptyFM emptyBag uniq_s mkUnknownSrcLoc
+ (rn_result, rn_errs, rn_warns)
+ = initRn True (panic "rnMtoTcM:module") rn_env uniq_s rn_action
in
returnSST (rn_result, rn_errs)
where
u_var = getUniqSupplyVar down
--}
\end{code}