X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fvectorise%2FVectMonad.hs;h=320d19286967478e3d400112e59e133aa815af59;hb=724425265ded8958a719b3a62f43006674b506c8;hp=11f7b53cc0bde450ac4b3ef0b1011483fec7d42a;hpb=f8b36ae46b5ee5aa13ca8a6fdb901d92249d147b;p=ghc-hetmet.git diff --git a/compiler/vectorise/VectMonad.hs b/compiler/vectorise/VectMonad.hs index 11f7b53..320d192 100644 --- a/compiler/vectorise/VectMonad.hs +++ b/compiler/vectorise/VectMonad.hs @@ -7,8 +7,8 @@ module VectMonad ( cloneName, cloneId, newExportedVar, newLocalVar, newDummyVar, newTyVar, - Builtins(..), - builtin, + Builtins(..), sumTyCon, prodTyCon, + builtin, builtins, GlobalEnv(..), setFamInstEnv, @@ -240,6 +240,9 @@ liftDs p = VM $ \bi genv lenv -> do { x <- p; return (Yes genv lenv x) } builtin :: (Builtins -> a) -> VM a builtin f = VM $ \bi genv lenv -> return (Yes genv lenv (f bi)) +builtins :: (a -> Builtins -> b) -> VM (a -> b) +builtins f = VM $ \bi genv lenv -> return (Yes genv lenv (`f` bi)) + readGEnv :: (GlobalEnv -> a) -> VM a readGEnv f = VM $ \bi genv lenv -> return (Yes genv lenv (f genv)) @@ -454,6 +457,7 @@ initV hsc_env guts info p builtins <- initBuiltins builtin_tycons <- initBuiltinTyCons builtin_pas <- initBuiltinPAs + builtin_prs <- initBuiltinPRs builtins eps <- ioToIOEnv $ hscEPS hsc_env let famInstEnvs = (eps_fam_inst_env eps, mg_fam_inst_env guts) @@ -461,6 +465,7 @@ initV hsc_env guts info p let genv = extendTyConsEnv builtin_tycons . extendPAFunsEnv builtin_pas + . setPRFunsEnv builtin_prs $ initGlobalEnv info instEnvs famInstEnvs r <- runVM p builtins genv emptyLocalEnv