/** * Sequentially zips this effect with the specified effect using the specified * combiner function. Combines the causes in case both effect fail. * * @tsplus static effect/core/io/Effect.Aspects validateWith * @tsplus pipeable effect/core/io/Effect validateWith */ export function validateWith( that: Effect, f: (a: A, b: B) => C ) { return (self: Effect): Effect => self.exit .zipWith(that.exit, (ea, eb) => ea.zipWith(eb, f, (ca, cb) => Cause.then(ca, cb))) .flatten }