From 3f00a7a5b697ff97533b051c53b44538f65fd3fd Mon Sep 17 00:00:00 2001 From: Roman Leshchinskiy Date: Thu, 2 Aug 2007 04:29:38 +0000 Subject: [PATCH] Include original tycon in PAInstance --- compiler/vectorise/VectType.hs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/compiler/vectorise/VectType.hs b/compiler/vectorise/VectType.hs index 69a93f8..af6665e 100644 --- a/compiler/vectorise/VectType.hs +++ b/compiler/vectorise/VectType.hs @@ -77,6 +77,7 @@ type TyConGroup = ([TyCon], UniqSet TyCon) data PAInstance = PAInstance { painstInstance :: Instance + , painstOrigTyCon :: TyCon , painstVectTyCon :: TyCon , painstArrTyCon :: TyCon } @@ -95,7 +96,7 @@ vectTypeEnv env vect_tcs = keep_tcs ++ new_tcs parr_tcs <- zipWithM buildPArrayTyCon orig_tcs vect_tcs - pa_insts <- zipWithM buildPAInstance vect_tcs parr_tcs + pa_insts <- sequence $ zipWith3 buildPAInstance orig_tcs vect_tcs parr_tcs let all_new_tcs = new_tcs ++ parr_tcs @@ -296,8 +297,8 @@ buildPArrayDataCon orig_name vect_tc repr_tc types = [ty | dc <- tyConDataCons vect_tc , ty <- dataConRepArgTys dc] -buildPAInstance :: TyCon -> TyCon -> VM PAInstance -buildPAInstance vect_tc arr_tc +buildPAInstance :: TyCon -> TyCon -> TyCon -> VM PAInstance +buildPAInstance orig_tc vect_tc arr_tc = do pa <- builtin paClass let inst_ty = mkForAllTys tvs @@ -308,6 +309,7 @@ buildPAInstance vect_tc arr_tc return $ PAInstance { painstInstance = mkLocalInstance dfun NoOverlap + , painstOrigTyCon = orig_tc , painstVectTyCon = vect_tc , painstArrTyCon = arr_tc } -- 1.7.10.4