X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fvectorise%2FVectorise%2FType%2FEnv.hs;h=61a52bc4b7b07e0ce15f9252e28d00656d187f38;hp=99c17464dd81075851cc6e1145c3d4c25e03ae07;hb=ff3bfae6010625b7ffe96bc62e8e139870684600;hpb=869984cd0306c18dcd103b9ef7dd315573dc3c6d diff --git a/compiler/vectorise/Vectorise/Type/Env.hs b/compiler/vectorise/Vectorise/Type/Env.hs index 99c1746..61a52bc 100644 --- a/compiler/vectorise/Vectorise/Type/Env.hs +++ b/compiler/vectorise/Vectorise/Type/Env.hs @@ -82,6 +82,13 @@ vectTypeEnv env let vect_tcs = filter (not . isClassTyCon) $ keep_tcs ++ new_tcs + reprs <- mapM tyConRepr vect_tcs + repr_tcs <- zipWith3M buildPReprTyCon orig_tcs vect_tcs reprs + pdata_tcs <- zipWith3M buildPDataTyCon orig_tcs vect_tcs reprs + updGEnv $ extendFamEnv + $ map mkLocalFamInst + $ repr_tcs ++ pdata_tcs + -- Create PRepr and PData instances for the vectorised types. -- We get back the binds for the instance functions, -- and some new type constructors for the representation types. @@ -89,8 +96,6 @@ vectTypeEnv env do defTyConPAs (zipLazy vect_tcs dfuns') reprs <- mapM tyConRepr vect_tcs - repr_tcs <- zipWith3M buildPReprTyCon orig_tcs vect_tcs reprs - pdata_tcs <- zipWith3M buildPDataTyCon orig_tcs vect_tcs reprs dfuns <- sequence $ zipWith5 buildTyConBindings