import * as tsplus_module_1 from "@effect/core/stm/STM/operations/map";
import * as tsplus_module_2 from "@effect/core/stm/STM/operations/flatMap";
/**
 * Sequentially zips this value with the specified one, combining the values
 * using the specified combiner function.
 *
 * @tsplus fluent ets/STM zipWith
 */

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

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