-vCaseProd :: VExpr -> Type -> Type
- -> DataCon -> DataCon -> [Var] -> [VVar] -> VExpr -> VExpr
-vCaseProd (vscrut, lscrut) vty lty vdc ldc sh_bndrs bndrs
- (vbody,lbody)
- = (Case vscrut (mkWildId $ exprType vscrut) vty
- [(DataAlt vdc, vbndrs, vbody)],
- Case lscrut (mkWildId $ exprType lscrut) lty
- [(DataAlt ldc, sh_bndrs ++ lbndrs, lbody)])
- where
- (vbndrs, lbndrs) = unzip bndrs