/** * Composes this sample with the specified sample to create a cartesian product * of values and shrinkings with the specified function. * * @tsplus static effect/core/testing/Sample.Aspects zipWith * @tsplus pipeable effect/core/testing/Sample zipWith */ export function zipWith(that: Sample, f: (a: A, b: B) => C) { return (self: Sample): Sample => self.flatMap( (a) => that.map((b) => f(a, b)) ) }