Use zipLazy from Util in VectType, rather than defining our own lazy_zip
[ghc-hetmet.git] / compiler / vectorise / VectType.hs
index 90a0825..42342c4 100644 (file)
@@ -32,7 +32,7 @@ import TysPrim           ( intPrimTy )
 import Unique
 import UniqFM
 import UniqSet
-import Util              ( singleton )
+import Util
 import Digraph           ( SCC(..), stronglyConnComp )
 
 import Outputable
@@ -154,11 +154,8 @@ vectTypeEnv env
 vectTyConDecls :: [TyCon] -> VM [TyCon]
 vectTyConDecls tcs = fixV $ \tcs' ->
   do
-    mapM_ (uncurry defTyCon) (lazy_zip tcs tcs')
+    mapM_ (uncurry defTyCon) (zipLazy tcs tcs')
     mapM vectTyConDecl tcs
-  where
-    lazy_zip [] _ = []
-    lazy_zip (x:xs) ~(y:ys) = (x,y) : lazy_zip xs ys
 
 vectTyConDecl :: TyCon -> VM TyCon
 vectTyConDecl tc
@@ -708,9 +705,9 @@ buildFromArrPRepr repr vect_tc prepr_tc arr_tc
 
     from_repr _ _ _ _ _ _ = panic "buildFromArrPRepr/from_repr"
 
-    from_prod prod@(ProdRepr { prod_components = tys
-                             , prod_arr_tycon  = tycon
-                             , prod_arr_data_con = data_con })
+    from_prod (ProdRepr { prod_components = tys
+                        , prod_arr_tycon  = tycon
+                        , prod_arr_data_con = data_con })
               expr
               shape_vars
               repr_vars
@@ -719,7 +716,6 @@ buildFromArrPRepr repr vect_tc prepr_tc arr_tc
       = do
           let scrut    = unwrapFamInstScrut tycon tys expr
               scrut_ty = mkTyConApp tycon tys
-          _ty <- arrReprType prod
 
           return $ Case scrut (mkWildId scrut_ty) res_ty
                    [(DataAlt data_con, shape_vars ++ repr_vars, body)]