emptyPA = paMethod pa_empty
packPA :: Type -> CoreExpr -> CoreExpr -> CoreExpr -> VM CoreExpr
-packPA ty xs len sel = liftM (`mkApps` [len, sel])
+packPA ty xs len sel = liftM (`mkApps` [xs, len, sel])
(paMethod pa_pack ty)
combinePA :: Type -> CoreExpr -> CoreExpr -> CoreExpr -> [CoreExpr]
mkLiftEnv lc tys vs
= do
(env_tc, env_tyargs) <- parrayReprTyCon vty
+
+ bndrs <- if null vs then do
+ v <- newDummyVar unitTy
+ return [v]
+ else return vs
let [env_con] = tyConDataCons env_tc
env = Var (dataConWrapId env_con)
args | null vs = [Var unitDataConId]
| otherwise = map Var vs
- bndrs | null vs = [mkWildId unitTy]
- | otherwise = vs
-