summaryrefslogtreecommitdiff
path: root/compiler/vectorise/Vectorise/Monad.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/vectorise/Vectorise/Monad.hs')
-rw-r--r--compiler/vectorise/Vectorise/Monad.hs7
1 files changed, 5 insertions, 2 deletions
diff --git a/compiler/vectorise/Vectorise/Monad.hs b/compiler/vectorise/Vectorise/Monad.hs
index b530b3c6a6..3e6c33ac7d 100644
--- a/compiler/vectorise/Vectorise/Monad.hs
+++ b/compiler/vectorise/Vectorise/Monad.hs
@@ -42,6 +42,7 @@ import Id
import Name
import ErrUtils
import Outputable
+import Module
-- |Run a vectorisation computation.
@@ -85,7 +86,9 @@ initV hsc_env guts info thing_inside
-- set up class and type family envrionments
; eps <- liftIO $ hscEPS hsc_env
; let famInstEnvs = (eps_fam_inst_env eps, mg_fam_inst_env guts)
- instEnvs = (eps_inst_env eps, mg_inst_env guts)
+ instEnvs = InstEnvs (eps_inst_env eps)
+ (mg_inst_env guts)
+ (mkModuleSet (dep_orphs (mg_deps guts)))
builtin_pas = initClassDicts instEnvs (paClass builtins) -- grab all 'PA' and..
builtin_prs = initClassDicts instEnvs (prClass builtins) -- ..'PR' class instances
@@ -114,7 +117,7 @@ initV hsc_env guts info thing_inside
-- instance dfun for that type constructor and class. (DPH class instances cannot overlap in
-- head constructors.)
--
- initClassDicts :: (InstEnv, InstEnv) -> Class -> [(Name, Var)]
+ initClassDicts :: InstEnvs -> Class -> [(Name, Var)]
initClassDicts insts cls = map find $ classInstances insts cls
where
find i | [Just tc] <- instanceRoughTcs i = (tc, instanceDFunId i)