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