X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FdeSugar%2FDsMonad.lhs;h=fa968119bdf925233dc3932b93946cf9aa486634;hb=6582768fd0065b9aa4abdd93fdfa6ac1d047482b;hp=83a5d212ae84eb720408de651dc585db50676ba0;hpb=0db3e625ff0717f36495b375e6008995d6ffb0a3;p=ghc-hetmet.git diff --git a/compiler/deSugar/DsMonad.lhs b/compiler/deSugar/DsMonad.lhs index 83a5d21..fa96811 100644 --- a/compiler/deSugar/DsMonad.lhs +++ b/compiler/deSugar/DsMonad.lhs @@ -25,6 +25,8 @@ module DsMonad ( DsMetaEnv, DsMetaVal(..), dsLookupMetaEnv, dsExtendMetaEnv, + dsLoadModule, + -- Warnings DsWarning, warnDs, failWithDs, @@ -38,6 +40,7 @@ import TcRnMonad import CoreSyn import HsSyn import TcIface +import LoadIface import RdrName import HscTypes import Bag @@ -53,10 +56,8 @@ import Type import UniqSupply import Name import NameEnv -import OccName import DynFlags import ErrUtils -import MonadUtils import FastString import Data.IORef @@ -232,7 +233,7 @@ newPredVarDs :: PredType -> DsM Var newPredVarDs pred | isEqPred pred = do { uniq <- newUnique; - ; let name = mkSystemName uniq (mkOccNameFS tcName (fsLit "co")) + ; let name = mkSystemName uniq (mkOccNameFS tcName (fsLit "co_pv")) kind = mkPredTy pred ; return (mkCoVar name kind) } | otherwise @@ -320,3 +321,13 @@ dsExtendMetaEnv :: DsMetaEnv -> DsM a -> DsM a dsExtendMetaEnv menv thing_inside = updLclEnv (\env -> env { ds_meta = ds_meta env `plusNameEnv` menv }) thing_inside \end{code} + +\begin{code} +dsLoadModule :: SDoc -> Module -> DsM () +dsLoadModule doc mod + = do { env <- getGblEnv + ; setEnvs (ds_if_env env) + (loadSysInterface doc mod >> return ()) + } +\end{code} +