diff options
author | Roman Leshchinskiy <rl@cse.unsw.edu.au> | 2007-08-23 01:34:58 +0000 |
---|---|---|
committer | Roman Leshchinskiy <rl@cse.unsw.edu.au> | 2007-08-23 01:34:58 +0000 |
commit | 55357088ddc788000b29e6bc8697fe09471bf195 (patch) | |
tree | c2fb8943c04c807d181742d4eaef43378dc4d17e /compiler/vectorise/VectMonad.hs | |
parent | 21d9b432b676af304dff8d7f4e1e31e1678bcae3 (diff) | |
download | haskell-55357088ddc788000b29e6bc8697fe09471bf195.tar.gz |
Read the package state after pulling in all built-ins during vectorisation
Diffstat (limited to 'compiler/vectorise/VectMonad.hs')
-rw-r--r-- | compiler/vectorise/VectMonad.hs | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/compiler/vectorise/VectMonad.hs b/compiler/vectorise/VectMonad.hs index 6cb1679403..0a14b6cca0 100644 --- a/compiler/vectorise/VectMonad.hs +++ b/compiler/vectorise/VectMonad.hs @@ -47,6 +47,7 @@ import NameEnv import TysPrim ( intPrimTy ) import Module import IfaceEnv +import IOEnv ( ioToIOEnv ) import DsMonad import PrelNames @@ -429,23 +430,23 @@ lookupFamInst tycon tys initV :: HscEnv -> ModGuts -> VectInfo -> VM a -> IO (Maybe (VectInfo, a)) initV hsc_env guts info p = do - eps <- hscEPS hsc_env - let famInstEnvs = (eps_fam_inst_env eps, mg_fam_inst_env guts) - let instEnvs = (eps_inst_env eps, mg_inst_env guts) - Just r <- initDs hsc_env (mg_module guts) (mg_rdr_env guts) (mg_types guts) - (go instEnvs famInstEnvs) + go return r where - go instEnvs famInstEnvs = + go = do - builtins <- initBuiltins + builtins <- initBuiltins builtin_tycons <- initBuiltinTyCons builtin_pas <- initBuiltinPAs + eps <- ioToIOEnv $ hscEPS hsc_env + let famInstEnvs = (eps_fam_inst_env eps, mg_fam_inst_env guts) + instEnvs = (eps_inst_env eps, mg_inst_env guts) + let genv = extendTyConsEnv builtin_tycons . extendPAFunsEnv builtin_pas $ initGlobalEnv info instEnvs famInstEnvs |