doubleTyCon, doubleTyConName,
boolTyCon, boolTyConName, trueDataCon, falseDataCon,
parrTyConName )
-import PrelNames ( gHC_PARR )
+import PrelNames ( word8TyConName, gHC_PARR )
import BasicTypes ( Boxity(..) )
import FastString
, dph_Combinators :: Module
, dph_Prelude_PArr :: Module
, dph_Prelude_Int :: Module
+ , dph_Prelude_Word8 :: Module
, dph_Prelude_Double :: Module
, dph_Prelude_Bool :: Module
, dph_Prelude_Tuple :: Module
, dph_Prelude_PArr = mk (fsLit "Data.Array.Parallel.Prelude.Base.PArr")
, dph_Prelude_Int = mk (fsLit "Data.Array.Parallel.Prelude.Base.Int")
+ , dph_Prelude_Word8 = mk (fsLit "Data.Array.Parallel.Prelude.Base.Word8")
, dph_Prelude_Double = mk (fsLit "Data.Array.Parallel.Prelude.Base.Double")
, dph_Prelude_Bool = mk (fsLit "Data.Array.Parallel.Prelude.Base.Bool")
, dph_Prelude_Tuple = mk (fsLit "Data.Array.Parallel.Prelude.Base.Tuple")
preludeVars (Modules { dph_Combinators = dph_Combinators
, dph_PArray = dph_PArray
, dph_Prelude_Int = dph_Prelude_Int
+ , dph_Prelude_Word8 = dph_Prelude_Word8
, dph_Prelude_Double = dph_Prelude_Double
, dph_Prelude_Bool = dph_Prelude_Bool
, dph_Prelude_PArr = dph_Prelude_PArr
++ vars_Ord dph_Prelude_Int
++ vars_Num dph_Prelude_Int
+ ++ vars_Ord dph_Prelude_Word8
+ ++ vars_Num dph_Prelude_Word8
+ ++
+ [ mk' dph_Prelude_Word8 "div" "divV"
+ , mk' dph_Prelude_Word8 "mod" "modV"
+ , mk' dph_Prelude_Word8 "fromInt" "fromIntV"
+ , mk' dph_Prelude_Word8 "toInt" "toIntV"
+ ]
+
++ vars_Ord dph_Prelude_Double
++ vars_Num dph_Prelude_Double
++ vars_Fractional dph_Prelude_Double
initBuiltinTyCons bi
= do
-- parr <- externalTyCon dph_Prelude_PArr (fsLit "PArr")
+ dft_tcs <- defaultTyCons
return $ (tyConName funTyCon, closureTyCon bi)
: (parrTyConName, parrayTyCon bi)
-- FIXME: temporary
: (tyConName $ parrayTyCon bi, parrayTyCon bi)
- : [(tyConName tc, tc) | tc <- defaultTyCons]
+ : [(tyConName tc, tc) | tc <- dft_tcs]
-defaultTyCons :: [TyCon]
-defaultTyCons = [intTyCon, boolTyCon, doubleTyCon]
+defaultTyCons :: DsM [TyCon]
+defaultTyCons
+ = do
+ word8 <- dsLookupTyCon word8TyConName
+ return [intTyCon, boolTyCon, doubleTyCon, word8]
initBuiltinDataCons :: Builtins -> [(Name, DataCon)]
initBuiltinDataCons _ = [(dataConName dc, dc)| dc <- defaultDataCons]
, mk unitTyConName (dph_Instances mods) (fsLit "dPA_Unit")
, mk intTyConName (dph_Instances mods) (fsLit "dPA_Int")
+ , mk word8TyConName (dph_Instances mods) (fsLit "dPA_Word8")
, mk doubleTyConName (dph_Instances mods) (fsLit "dPA_Double")
, mk boolTyConName (dph_Instances mods) (fsLit "dPA_Bool")
]
-- temporary
, mk intTyConName (dph_Instances mods) (fsLit "dPR_Int")
+ , mk word8TyConName (dph_Instances mods) (fsLit "dPR_Word8")
, mk doubleTyConName (dph_Instances mods) (fsLit "dPR_Double")
]