[] -- no existential tvs for now
[] -- no eq spec for now
[] -- no context
- arg_tys
+ arg_tys
+ (mkFamilyTyConApp tycon' (mkTyVarTys univ_tvs))
tycon'
where
name = dataConName dc
repr_tys <- arrReprTys repr
let tys = shape_tys ++ repr_tys
+ tvs = tyConTyVars vect_tc
liftDs $ buildDataCon dc_name
False -- not infix
(map (const NotMarkedStrict) tys)
[] -- no field labels
- (tyConTyVars vect_tc)
+ tvs
[] -- no existentials
[] -- no eq spec
[] -- no context
tys
+ (mkFamilyTyConApp repr_tc (mkTyVarTys tvs))
repr_tc
mkPADFun :: TyCon -> VM Var
var <- newLocalVar name (exprType body)
return (var, mkInlineMe body)
+-- The InlineMe note has gone away. Instead, you need to use
+-- CoreUnfold.mkInlineRule to make an InlineRule for the thing, and
+-- attach *that* as the unfolding for the dictionary binder
+mkInlineMe :: CoreExpr -> CoreExpr
+mkInlineMe expr = pprTrace "VectType: Roman, you need to use the new InlineRule story"
+ (ppr expr) expr
+
paMethods :: [(FastString, Repr -> TyCon -> TyCon -> TyCon -> VM CoreExpr)]
paMethods = [(fsLit "toPRepr", buildToPRepr),
(fsLit "fromPRepr", buildFromPRepr),