diff options
author | Roman Leshchinskiy <rl@cse.unsw.edu.au> | 2008-07-01 02:45:15 +0000 |
---|---|---|
committer | Roman Leshchinskiy <rl@cse.unsw.edu.au> | 2008-07-01 02:45:15 +0000 |
commit | 13af4e5da214fb0b9be6a536048fe7a905af3b16 (patch) | |
tree | 88fc42ce1955a065afd82114896c59b05898542a /compiler/vectorise/VectMonad.hs | |
parent | 4b6197ca39d49029b14ea08ceae7d947bc2845db (diff) | |
download | haskell-13af4e5da214fb0b9be6a536048fe7a905af3b16.tar.gz |
Parametrise vectoriser with DPH package
Diffstat (limited to 'compiler/vectorise/VectMonad.hs')
-rw-r--r-- | compiler/vectorise/VectMonad.hs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/compiler/vectorise/VectMonad.hs b/compiler/vectorise/VectMonad.hs index b8c9c06598..1299683b9f 100644 --- a/compiler/vectorise/VectMonad.hs +++ b/compiler/vectorise/VectMonad.hs @@ -37,6 +37,7 @@ module VectMonad ( import VectBuiltIn import HscTypes +import Module ( dphSeqPackageId ) import CoreSyn import TyCon import DataCon @@ -253,6 +254,9 @@ closedV p = do liftDs :: DsM a -> VM a liftDs p = VM $ \_ genv lenv -> do { x <- p; return (Yes genv lenv x) } +liftBuiltinDs :: (Builtins -> DsM a) -> VM a +liftBuiltinDs p = VM $ \bi genv lenv -> do { x <- p bi; return (Yes genv lenv x)} + builtin :: (Builtins -> a) -> VM a builtin f = VM $ \bi genv lenv -> return (Yes genv lenv (f bi)) @@ -378,10 +382,10 @@ defDataCon dc dc' = updGEnv $ \env -> env { global_datacons = extendNameEnv (global_datacons env) (dataConName dc) dc' } lookupPrimPArray :: TyCon -> VM (Maybe TyCon) -lookupPrimPArray = liftDs . primPArray +lookupPrimPArray = liftBuiltinDs . primPArray lookupPrimMethod :: TyCon -> String -> VM (Maybe Var) -lookupPrimMethod tycon = liftDs . primMethod tycon +lookupPrimMethod tycon = liftBuiltinDs . primMethod tycon lookupTyConPA :: TyCon -> VM (Maybe Var) lookupTyConPA tc = readGEnv $ \env -> lookupNameEnv (global_pa_funs env) (tyConName tc) @@ -487,7 +491,7 @@ initV hsc_env guts info p go = do - builtins <- initBuiltins + builtins <- initBuiltins dphSeqPackageId builtin_vars <- initBuiltinVars builtins builtin_tycons <- initBuiltinTyCons builtins let builtin_datacons = initBuiltinDataCons builtins |