import * as tsplus_module_1 from "@effect/core/io/Effect/operations/map";
import * as tsplus_module_2 from "@effect/core/io/Effect/operations/flatMap";
/**
 * Sequentially zips this effect with the specified effect using the
 * specified combiner function.
 *
 * @tsplus fluent ets/Effect zipWith
 */

export function zipWith_(self, that, f, __tsplusTrace) {
  return tsplus_module_2.flatMap_(self, a => tsplus_module_1.map_(that(), b => f(a, b), __tsplusTrace), __tsplusTrace);
}
/**
 * Sequentially zips this effect with the specified effect using the
 * specified combiner function.
 *
 * @tsplus static ets/Effect/Aspects zipWith
 */

export const zipWith = (that, f, __tsplusTrace) => self => zipWith_(self, that, f, __tsplusTrace);
//# sourceMappingURL=zipWith.mjs.map