- parrayIntPrimTyCon <- externalTyCon nDP_PRIM FSLIT("PArray_Int#")
- parrayBoolPrimTyCon <- externalTyCon nDP_PRIM FSLIT("PArray_Bool#")
- closureTyCon <- externalTyCon nDP_CLOSURE FSLIT(":->")
-
- voidTyCon <- externalTyCon nDP_REPR FSLIT("Void")
- wrapTyCon <- externalTyCon nDP_REPR FSLIT("Wrap")
- enumerationTyCon <- externalTyCon nDP_REPR FSLIT("Enumeration")
- sum_tcs <- mapM (externalTyCon nDP_REPR)
- [mkFastString ("Sum" ++ show i) | i <- [2..mAX_NDP_SUM]]
-
- let sumTyCons = listArray (2, mAX_NDP_SUM) sum_tcs
-
- voidVar <- externalVar nDP_REPR FSLIT("void")
- mkPRVar <- externalVar nDP_PARRAY FSLIT("mkPR")
- mkClosureVar <- externalVar nDP_CLOSURE FSLIT("mkClosure")
- applyClosureVar <- externalVar nDP_CLOSURE FSLIT("$:")
- mkClosurePVar <- externalVar nDP_CLOSURE FSLIT("mkClosureP")
- applyClosurePVar <- externalVar nDP_CLOSURE FSLIT("$:^")
- replicatePAIntPrimVar <- externalVar nDP_PRIM FSLIT("replicatePA_Int#")
- upToPAIntPrimVar <- externalVar nDP_PRIM FSLIT("upToPA_Int#")
- selectPAIntPrimVar <- externalVar nDP_PRIM FSLIT("selectPA_Int#")
- truesPABoolPrimVar <- externalVar nDP_PRIM FSLIT("truesPA_Bool#")
- lengthPAVar <- externalVar nDP_PARRAY FSLIT("lengthPA")
- replicatePAVar <- externalVar nDP_PARRAY FSLIT("replicatePA")
- emptyPAVar <- externalVar nDP_PARRAY FSLIT("emptyPA")
- packPAVar <- externalVar nDP_PARRAY FSLIT("packPA")
-
- combines <- mapM (externalVar nDP_PARRAY)
- [mkFastString ("combine" ++ show i ++ "PA")
- | i <- [2..mAX_NDP_COMBINE]]
- let combinePAVars = listArray (2, mAX_NDP_COMBINE) combines
-
- liftingContext <- liftM (\u -> mkSysLocal FSLIT("lc") u intPrimTy)
+ intPrimArrayTy <- externalType dph_Unboxed (fsLit "PArray_Int#")
+ closureTyCon <- externalTyCon dph_Closure (fsLit ":->")
+
+ voidTyCon <- externalTyCon dph_Repr (fsLit "Void")
+ wrapTyCon <- externalTyCon dph_Repr (fsLit "Wrap")
+ enumerationTyCon <- externalTyCon dph_Repr (fsLit "Enumeration")
+ sum_tcs <- mapM (externalTyCon dph_Repr)
+ [mkFastString ("Sum" ++ show i) | i <- [2..mAX_DPH_SUM]]
+
+ let sumTyCons = listArray (2, mAX_DPH_SUM) sum_tcs
+
+ voidVar <- externalVar dph_Repr (fsLit "void")
+ mkPRVar <- externalVar dph_PArray (fsLit "mkPR")
+ mkClosureVar <- externalVar dph_Closure (fsLit "mkClosure")
+ applyClosureVar <- externalVar dph_Closure (fsLit "$:")
+ mkClosurePVar <- externalVar dph_Closure (fsLit "mkClosureP")
+ applyClosurePVar <- externalVar dph_Closure (fsLit "$:^")
+ replicatePAIntPrimVar <- externalVar dph_Unboxed (fsLit "replicatePA_Int#")
+ upToPAIntPrimVar <- externalVar dph_Unboxed (fsLit "upToPA_Int#")
+ selectPAIntPrimVar <- externalVar dph_Unboxed (fsLit "selectPA_Int#")
+ truesPABoolPrimVar <- externalVar dph_Unboxed (fsLit "truesPA_Bool#")
+ lengthPAVar <- externalVar dph_PArray (fsLit "lengthPA#")
+ replicatePAVar <- externalVar dph_PArray (fsLit "replicatePA#")
+ emptyPAVar <- externalVar dph_PArray (fsLit "emptyPA")
+ packPAVar <- externalVar dph_PArray (fsLit "packPA#")
+
+ combines <- mapM (externalVar dph_PArray)
+ [mkFastString ("combine" ++ show i ++ "PA#")
+ | i <- [2..mAX_DPH_COMBINE]]
+ let combinePAVars = 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)
+ [mkFastString ("scalar_zipWith" ++ show i)
+ | i <- [3 .. mAX_DPH_SCALAR_ARGS]]
+ let scalarZips = listArray (1, mAX_DPH_SCALAR_ARGS)
+ (scalar_map : scalar_zip2 : scalar_zips)
+ closures <- mapM (externalVar dph_Closure)
+ [mkFastString ("closure" ++ show i)
+ | i <- [1 .. mAX_DPH_SCALAR_ARGS]]
+ let closureCtrFuns = listArray (1, mAX_DPH_COMBINE) closures
+
+ liftingContext <- liftM (\u -> mkSysLocal (fsLit "lc") u intPrimTy)