- parrayIntPrimTyCon <- dsLookupTyCon parrayIntPrimTyConName
- closureTyCon <- dsLookupTyCon closureTyConName
-
- voidTyCon <- lookupExternalTyCon nDP_REPR FSLIT("Void")
- wrapTyCon <- lookupExternalTyCon nDP_REPR FSLIT("Wrap")
- sum_tcs <- mapM (lookupExternalTyCon nDP_REPR)
- [mkFastString ("Sum" ++ show i) | i <- [2..mAX_NDP_SUM]]
-
- let sumTyCons = listArray (2, mAX_NDP_SUM) sum_tcs
-
- voidVar <- lookupExternalVar nDP_REPR FSLIT("void")
- mkPRVar <- dsLookupGlobalId mkPRName
- mkClosureVar <- dsLookupGlobalId mkClosureName
- applyClosureVar <- dsLookupGlobalId applyClosureName
- mkClosurePVar <- dsLookupGlobalId mkClosurePName
- applyClosurePVar <- dsLookupGlobalId applyClosurePName
- replicatePAIntPrimVar <- dsLookupGlobalId replicatePAIntPrimName
- upToPAIntPrimVar <- dsLookupGlobalId upToPAIntPrimName
- lengthPAVar <- dsLookupGlobalId lengthPAName
- replicatePAVar <- dsLookupGlobalId replicatePAName
- emptyPAVar <- dsLookupGlobalId emptyPAName
- -- packPAVar <- dsLookupGlobalId packPAName
- -- combinePAVar <- dsLookupGlobalId combinePAName
-
- liftingContext <- liftM (\u -> mkSysLocal FSLIT("lc") u intPrimTy)
+ closureTyCon <- externalTyCon dph_Closure (fsLit ":->")
+
+ voidTyCon <- externalTyCon dph_Repr (fsLit "Void")
+ wrapTyCon <- externalTyCon dph_Repr (fsLit "Wrap")
+ sel_tys <- mapM (externalType dph_Selector)
+ (numbered "Sel" 2 mAX_DPH_SUM)
+ sel_replicates <- mapM (externalFun dph_Selector)
+ (numbered "replicate" 2 mAX_DPH_SUM)
+ sel_picks <- mapM (externalFun dph_Selector)
+ (numbered "pick" 2 mAX_DPH_SUM)
+ sel_tags <- mapM (externalFun dph_Selector)
+ (numbered "tagsSel" 2 mAX_DPH_SUM)
+ sel_els <- mapM mk_elements
+ [(i,j) | i <- [2..mAX_DPH_SUM], j <- [0..i-1]]
+ sum_tcs <- mapM (externalTyCon dph_Repr)
+ (numbered "Sum" 2 mAX_DPH_SUM)
+
+ let selTys = listArray (2, mAX_DPH_SUM) sel_tys
+ selReplicates = listArray (2, mAX_DPH_SUM) sel_replicates
+ selPicks = listArray (2, mAX_DPH_SUM) sel_picks
+ selTagss = listArray (2, mAX_DPH_SUM) sel_tags
+ selEls = array ((2,0), (mAX_DPH_SUM, mAX_DPH_SUM)) sel_els
+ sumTyCons = listArray (2, mAX_DPH_SUM) sum_tcs
+
+ voidVar <- externalVar dph_Repr (fsLit "void")
+ pvoidVar <- externalVar dph_Repr (fsLit "pvoid")
+ fromVoidVar <- externalVar dph_Repr (fsLit "fromVoid")
+ punitVar <- externalVar dph_Repr (fsLit "punit")
+ closureVar <- externalVar dph_Closure (fsLit "closure")
+ applyVar <- externalVar dph_Closure (fsLit "$:")
+ liftedClosureVar <- externalVar dph_Closure (fsLit "liftedClosure")
+ liftedApplyVar <- externalVar dph_Closure (fsLit "liftedApply")
+ replicatePDVar <- externalVar dph_PArray (fsLit "replicatePD")
+ emptyPDVar <- externalVar dph_PArray (fsLit "emptyPD")
+ packPDVar <- externalVar dph_PArray (fsLit "packPD")
+ packByTagPDVar <- externalVar dph_PArray (fsLit "packByTagPD")
+
+ combines <- mapM (externalVar dph_PArray)
+ [mkFastString ("combine" ++ show i ++ "PD")
+ | i <- [2..mAX_DPH_COMBINE]]
+ let combinePDVars = listArray (2, mAX_DPH_COMBINE) combines
+
+ scalarClass <- externalClass dph_Scalar (fsLit "Scalar")
+ scalar_map <- externalVar dph_Scalar (fsLit "scalar_map")
+ scalar_zip2 <- externalVar dph_Scalar (fsLit "scalar_zipWith")
+ scalar_zips <- mapM (externalVar dph_Scalar)
+ (numbered "scalar_zipWith" 3 mAX_DPH_SCALAR_ARGS)
+ let scalarZips = listArray (1, mAX_DPH_SCALAR_ARGS)
+ (scalar_map : scalar_zip2 : scalar_zips)
+ closures <- mapM (externalVar dph_Closure)
+ (numbered "closure" 1 mAX_DPH_SCALAR_ARGS)
+ let closureCtrFuns = listArray (1, mAX_DPH_COMBINE) closures
+
+ liftingContext <- liftM (\u -> mkSysLocal (fsLit "lc") u intPrimTy)