- embedTyCon <- dsLookupTyCon embedTyConName
- let [embedDataCon] = tyConDataCons embedTyCon
- crossTyCon <- dsLookupTyCon ndpCrossTyConName
- let [crossDataCon] = tyConDataCons crossTyCon
- plusTyCon <- dsLookupTyCon ndpPlusTyConName
- let [leftDataCon, rightDataCon] = tyConDataCons plusTyCon
- closureTyCon <- dsLookupTyCon closureTyConName
-
- mkClosureVar <- dsLookupGlobalId mkClosureName
- applyClosureVar <- dsLookupGlobalId applyClosureName
- mkClosurePVar <- dsLookupGlobalId mkClosurePName
- applyClosurePVar <- dsLookupGlobalId applyClosurePName
- lengthPAVar <- dsLookupGlobalId lengthPAName
- replicatePAVar <- dsLookupGlobalId replicatePAName
- emptyPAVar <- dsLookupGlobalId emptyPAName
- -- packPAVar <- dsLookupGlobalId packPAName
- -- combinePAVar <- dsLookupGlobalId combinePAName
- intEqPAVar <- dsLookupGlobalId intEqPAName
+ 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")
+ 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