simplified withPrimal. avoid re-exporting Scalar