X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fvectorise%2FVectMonad.hs;h=289f526ce1eec67bafd53904eac975b8e7d1e393;hb=f48c36d1f3f64570b44fae1737ad34f6ce98bd7d;hp=ab77037bda44c6b1bde33bd66b4aced832b2d7de;hpb=d77637338d311172efb17a4a7e99ac6c441543b1;p=ghc-hetmet.git diff --git a/compiler/vectorise/VectMonad.hs b/compiler/vectorise/VectMonad.hs index ab77037..289f526 100644 --- a/compiler/vectorise/VectMonad.hs +++ b/compiler/vectorise/VectMonad.hs @@ -4,7 +4,7 @@ module VectMonad ( noV, tryV, maybeV, orElseV, localV, initV, newLocalVar, newTyVar, - Builtins(..), + Builtins(..), paDictTyCon, builtin, GlobalEnv(..), @@ -46,41 +46,41 @@ import FastString data Builtins = Builtins { parrayTyCon :: TyCon - , paTyCon :: TyCon + , paClass :: Class , closureTyCon :: TyCon , mkClosureVar :: Var , applyClosureVar :: Var , mkClosurePVar :: Var , applyClosurePVar :: Var - , closurePAVar :: Var , lengthPAVar :: Var , replicatePAVar :: Var } +paDictTyCon :: Builtins -> TyCon +paDictTyCon = classTyCon . paClass + initBuiltins :: DsM Builtins initBuiltins = do parrayTyCon <- dsLookupTyCon parrayTyConName - paTyCon <- dsLookupTyCon paTyConName + paClass <- dsLookupClass paClassName closureTyCon <- dsLookupTyCon closureTyConName mkClosureVar <- dsLookupGlobalId mkClosureName applyClosureVar <- dsLookupGlobalId applyClosureName mkClosurePVar <- dsLookupGlobalId mkClosurePName applyClosurePVar <- dsLookupGlobalId applyClosurePName - closurePAVar <- dsLookupGlobalId closurePAName lengthPAVar <- dsLookupGlobalId lengthPAName replicatePAVar <- dsLookupGlobalId replicatePAName return $ Builtins { parrayTyCon = parrayTyCon - , paTyCon = paTyCon + , paClass = paClass , closureTyCon = closureTyCon , mkClosureVar = mkClosureVar , applyClosureVar = applyClosureVar , mkClosurePVar = mkClosurePVar , applyClosurePVar = applyClosurePVar - , closurePAVar = closurePAVar , lengthPAVar = lengthPAVar , replicatePAVar = replicatePAVar }