genericTyConNames = [crossTyConName, plusTyConName, genUnitTyConName]
ndpNames :: [Name]
-ndpNames = [ parrayTyConName, paTyConName, preprTyConName
+ndpNames = [ parrayTyConName, paTyConName, preprTyConName, prClassName
, ndpCrossTyConName, ndpPlusTyConName, embedTyConName
, closureTyConName
, mkClosureName, applyClosureName
parrayTyConName = tcQual nDP_PARRAY FSLIT("PArray") parrayTyConKey
paTyConName = tcQual nDP_PARRAY FSLIT("PA") paTyConKey
preprTyConName = tcQual nDP_PARRAY FSLIT("PRepr") preprTyConKey
+prClassName = clsQual nDP_PARRAY FSLIT("PR") prClassKey
ndpCrossTyConName = tcQual nDP_PARRAY FSLIT(":*:") ndpCrossTyConKey
ndpPlusTyConName = tcQual nDP_PARRAY FSLIT(":+:") ndpPlusTyConKey
embedTyConName = tcQual nDP_PARRAY FSLIT("Embed") embedTyConKey
randomGenClassKey = mkPreludeClassUnique 32
isStringClassKey = mkPreludeClassUnique 33
+
+prClassKey = mkPreludeClassUnique 34
\end{code}
%************************************************************************
import TyCon
import DataCon
import Type
+import Class
import Var
import VarEnv
import Id
, paTyCon :: TyCon
, paDataCon :: DataCon
, preprTyCon :: TyCon
+ , prClass :: Class
, embedTyCon :: TyCon
, embedDataCon :: DataCon
, crossTyCon :: TyCon
paTyCon <- dsLookupTyCon paTyConName
let [paDataCon] = tyConDataCons paTyCon
preprTyCon <- dsLookupTyCon preprTyConName
+ prClass <- dsLookupClass prClassName
embedTyCon <- dsLookupTyCon embedTyConName
let [embedDataCon] = tyConDataCons embedTyCon
crossTyCon <- dsLookupTyCon ndpCrossTyConName
, paTyCon = paTyCon
, paDataCon = paDataCon
, preprTyCon = preprTyCon
+ , prClass = prClass
, embedTyCon = embedTyCon
, embedDataCon = embedDataCon
, crossTyCon = crossTyCon