, vectAndLiftType
, vectType)
where
-import VectUtils
+import Vectorise.Utils
import Vectorise.Monad
import Vectorise.Builtins
import TypeRep
import Type
import TyCon
-import Var
import Outputable
import Control.Monad
import Data.List
vectAndLiftType ty | Just ty' <- coreView ty = vectAndLiftType ty'
vectAndLiftType ty
= do
- mdicts <- mapM paDictArgType tyvars
+ mdicts <- mapM paDictArgType (reverse tyvars)
let dicts = [dict | Just dict <- mdicts]
vmono_ty <- vectType mono_ty
lmono_ty <- mkPDataType vmono_ty
dictsPA <- liftM catMaybes $ mapM paDictArgType tyvars
-- pack it all back together.
- return $ abstractType tyvars (dictsVect ++ dictsPA) tyBody''
+ traceVt "vect ForAllTy: " $ ppr (abstractType tyvars (dictsPA ++ dictsVect) tyBody'')
+ return $ abstractType tyvars (dictsPA ++ dictsVect) tyBody''
vectType ty = cantVectorise "Can't vectorise type" (ppr ty)