// ets_tracing: off import { chain_ } from "./core.js" import type { Effect } from "./effect.js" import { map_ } from "./map.js" /** * Sequentially zips this effect with the specified effect using the * specified combiner function. * * @ets_data_first zipWith_ */ export function zipWith( b: Effect, f: (a: A, b: A2) => B, __trace?: string ) { return (a: Effect): Effect => zipWith_(a, b, f, __trace) } /** * Sequentially zips this effect with the specified effect using the * specified combiner function. */ export function zipWith_( a: Effect, b: Effect, f: (a: A, b: A2) => B, __trace?: string ): Effect { return chain_(a, (ra) => map_(b, (rb) => f(ra, rb)), __trace) }