- parr_tcs <- mapM buildPArrayTyCon (keep_tcs ++ vect_tcs)
- let new_tcs = vect_tcs ++ parr_tcs
- return $ extendTypeEnvList env
- (map ATyCon new_tcs ++ [ADataCon dc | tc <- new_tcs
- , dc <- tyConDataCons tc])
+ parr_tcs1 <- zipWithM buildPArrayTyCon keep_tcs keep_tcs
+ parr_tcs2 <- zipWithM buildPArrayTyCon conv_tcs vect_tcs
+ let new_tcs = vect_tcs ++ parr_tcs1 ++ parr_tcs2
+
+ let new_env = extendTypeEnvList env
+ (map ATyCon new_tcs
+ ++ [ADataCon dc | tc <- new_tcs
+ , dc <- tyConDataCons tc])
+
+ return (new_env, map mkLocalFamInst (parr_tcs1 ++ parr_tcs2), [])