import TysPrim
import TysWiredIn ( unitTyCon, tupleTyCon,
intTyCon, intTyConName,
+ doubleTyCon, doubleTyConName,
boolTyCon, boolTyConName, trueDataCon, falseDataCon,
parrTyCon, parrTyConName )
import PrelNames ( gHC_PARR )
nDP_INSTANCES = mkNDPModule FSLIT("Data.Array.Parallel.Lifted.Instances")
nDP_COMBINATORS = mkNDPModule FSLIT("Data.Array.Parallel.Lifted.Combinators")
-nDP_PRELUDE_PARR = gHC_PARR -- mkNDPModule FSLIT("Data.Array.Parallel.Prelude.PArr")
-nDP_PRELUDE_INT = mkNDPModule FSLIT("Data.Array.Parallel.Prelude.Int")
-nDP_PRELUDE = mkNDPModule FSLIT("Data.Array.Parallel.Prelude")
+nDP_PRELUDE_PARR = mkNDPModule FSLIT("Data.Array.Parallel.Prelude.Base.PArr")
+nDP_PRELUDE_INT = mkNDPModule FSLIT("Data.Array.Parallel.Prelude.Base.Int")
+nDP_PRELUDE_DOUBLE = mkNDPModule FSLIT("Data.Array.Parallel.Prelude.Base.Double")
data Builtins = Builtins {
parrayTyCon :: TyCon
preludeVars :: [(Module, FastString, Module, FastString)]
preludeVars
= [
- mk nDP_PRELUDE_PARR FSLIT("mapP") nDP_COMBINATORS FSLIT("mapPA")
- , mk nDP_PRELUDE_PARR FSLIT("zipWithP") nDP_COMBINATORS FSLIT("zipWithPA")
+ mk gHC_PARR FSLIT("mapP") nDP_COMBINATORS FSLIT("mapPA")
+ , mk gHC_PARR FSLIT("zipWithP") nDP_COMBINATORS FSLIT("zipWithPA")
+
, mk nDP_PRELUDE_INT FSLIT("plus") nDP_PRELUDE_INT FSLIT("plusV")
, mk nDP_PRELUDE_INT FSLIT("minus") nDP_PRELUDE_INT FSLIT("minusV")
+ , mk nDP_PRELUDE_INT FSLIT("mult") nDP_PRELUDE_INT FSLIT("multV")
, mk nDP_PRELUDE_INT FSLIT("sumP") nDP_PRELUDE_INT FSLIT("sumPA")
, mk nDP_PRELUDE_INT FSLIT("upToP") nDP_PRELUDE_INT FSLIT("upToPA")
+ , mk nDP_PRELUDE_DOUBLE FSLIT("plus") nDP_PRELUDE_DOUBLE FSLIT("plusV")
+ , mk nDP_PRELUDE_DOUBLE FSLIT("minus") nDP_PRELUDE_DOUBLE FSLIT("minusV")
+ , mk nDP_PRELUDE_DOUBLE FSLIT("mult") nDP_PRELUDE_DOUBLE FSLIT("multV")
+ , mk nDP_PRELUDE_DOUBLE FSLIT("sumP") nDP_PRELUDE_DOUBLE FSLIT("sumPA")
+
-- FIXME: temporary
- , mk nDP_PRELUDE FSLIT("fromPArrayP") nDP_PRELUDE FSLIT("fromPArrayPA")
+ , mk nDP_PRELUDE_PARR FSLIT("fromPArrayP") nDP_PRELUDE_PARR FSLIT("fromPArrayPA")
]
where
mk = (,,,)
: [(tyConName tc, tc) | tc <- defaultTyCons]
defaultTyCons :: [TyCon]
-defaultTyCons = [intTyCon, boolTyCon]
+defaultTyCons = [intTyCon, boolTyCon, doubleTyCon]
initBuiltinDataCons :: Builtins -> [(Name, DataCon)]
initBuiltinDataCons bi = [(dataConName dc, dc)| dc <- defaultDataCons]
, mk unitTyConName nDP_INSTANCES FSLIT("dPA_Unit")
, mk intTyConName nDP_INSTANCES FSLIT("dPA_Int")
+ , mk doubleTyConName nDP_INSTANCES FSLIT("dPA_Double")
, mk boolTyConName nDP_INSTANCES FSLIT("dPA_Bool")
]
++ tups
-- temporary
, mk intTyConName nDP_INSTANCES FSLIT("dPR_Int")
+ , mk doubleTyConName nDP_INSTANCES FSLIT("dPR_Double")
]
++ map mk_sum [2..mAX_NDP_SUM]