This BIG PATCH contains most of the work for the New Coercion Representation
[ghc-hetmet.git] / compiler / vectorise / Vectorise / Utils.hs
index 8f1d7db..c7020ea 100644 (file)
@@ -4,7 +4,6 @@ module Vectorise.Utils (
   module Vectorise.Utils.Closure,
   module Vectorise.Utils.Hoisting,
   module Vectorise.Utils.PADict,
-  module Vectorise.Utils.PRDict,
   module Vectorise.Utils.Poly,
 
   -- * Annotated Exprs
@@ -28,14 +27,12 @@ import Vectorise.Utils.Base
 import Vectorise.Utils.Closure
 import Vectorise.Utils.Hoisting
 import Vectorise.Utils.PADict
-import Vectorise.Utils.PRDict
 import Vectorise.Utils.Poly
 import Vectorise.Monad
 import Vectorise.Builtins
 import CoreSyn
 import CoreUtils
 import Type
-import Var
 import Control.Monad
 
 
@@ -49,7 +46,7 @@ collectAnnTypeArgs expr = go expr []
 collectAnnTypeBinders :: AnnExpr Var ann -> ([Var], AnnExpr Var ann)
 collectAnnTypeBinders expr = go [] expr
   where
-    go bs (_, AnnLam b e) | isTyCoVar b = go (b:bs) e
+    go bs (_, AnnLam b e) | isTyVar b = go (b:bs) e
     go bs e                           = (reverse bs, e)
 
 collectAnnValBinders :: AnnExpr Var ann -> ([Var], AnnExpr Var ann)
@@ -146,8 +143,8 @@ zipScalars arg_tys res_ty
 scalarClosure :: [Type] -> Type -> CoreExpr -> CoreExpr -> VM CoreExpr
 scalarClosure arg_tys res_ty scalar_fun array_fun
   = do
-      ctr      <- builtin (closureCtrFun $ length arg_tys)
-      Just pas <- liftM sequence $ mapM paDictOfType (init arg_tys)
+      ctr <- builtin (closureCtrFun $ length arg_tys)
+      pas <- mapM paDictOfType (init arg_tys)
       return $ Var ctr `mkTyApps` (arg_tys ++ [res_ty])
                        `mkApps`   (pas ++ [scalar_fun, array_fun])