Add built-in PA dictionary for closures
[ghc-hetmet.git] / compiler / vectorise / Vectorise.hs
index 4116446..06fc542 100644 (file)
@@ -54,7 +54,8 @@ mkNDPVarFS fs = mkRdrQual nDP_BUILTIN (mkVarOccFS fs)
 
 builtin_PAs :: [(Name, RdrName)]
 builtin_PAs = [
-                mk intTyConName FSLIT("dPA_Int")
+                mk closureTyConName FSLIT("dPA_Clo")
+              , mk intTyConName     FSLIT("dPA_Int")
               ]
               ++ tups
   where
@@ -80,7 +81,7 @@ vectModule :: ModGuts -> VM ModGuts
 vectModule guts
   = do
       defTyConRdrPAs builtin_PAs
-      (types', fam_insts) <- vectTypeEnv (mg_types guts)
+      (types', fam_insts, tc_binds) <- vectTypeEnv (mg_types guts)
       
       let fam_inst_env' = extendFamInstEnvList (mg_fam_inst_env guts) fam_insts
       updGEnv (setFamInstEnv fam_inst_env')
@@ -89,8 +90,7 @@ vectModule guts
       -- workers <- mapM vectDataConWorkers pa_insts
       binds'  <- mapM vectTopBind (mg_binds guts)
       return $ guts { mg_types        = types'
-                    , mg_binds        = -- Rec (concat workers ++ concat dicts) :
-                                        binds'
+                    , mg_binds        = Rec tc_binds : binds'
                     , mg_fam_inst_env = fam_inst_env'
                     , mg_fam_insts    = mg_fam_insts guts ++ fam_insts
                     }