import * as tsplus_module_1 from "@tsplus/stdlib/data/Tuple/make";
import * as tsplus_module_2 from "@effect/core/stream/Stream/operations/zipAllWith";
/**
 * Zips this stream with another point-wise, creating a new stream of pairs of
 * elements from both sides.
 *
 * The defaults `defaultLeft` and `defaultRight` will be used if the streams
 * have different lengths and one of the streams has ended before the other.
 *
 * @tsplus fluent ets/Stream zipAll
 */

export function zipAll_(self, that, defaultLeft, defaultRight, __tsplusTrace) {
  return tsplus_module_2.zipAllWith_(self, that, a => tsplus_module_1.make(a, defaultRight()), a2 => tsplus_module_1.make(defaultLeft(), a2), (a, a2) => tsplus_module_1.make(a, a2), __tsplusTrace);
}
/**
 * Zips this stream with another point-wise, creating a new stream of pairs of
 * elements from both sides.
 *
 * The defaults `defaultLeft` and `defaultRight` will be used if the streams
 * have different lengths and one of the streams has ended before the other.
 *
 * @tsplus static ets/Stream/Aspects zipAll
 */

export const zipAll = (that, defaultLeft, defaultRight, __tsplusTrace) => self => zipAll_(self, that, defaultLeft, defaultRight, __tsplusTrace);
//# sourceMappingURL=zipAll.mjs.map