import * as tsplus_module_1 from "@effect/core/io/Layer/operations/suspend";
import { ILayerZipWithPar } from "@effect/core/io/Layer/definition";
/**
 * Combines this layer with the specified layer, producing a new layer that
 * has the inputs and outputs of both.
 *
 * @tsplus operator ets/Layer +
 * @tsplus fluent ets/Layer and
 */

export function and_(self, that) {
  return tsplus_module_1.suspend(() => new ILayerZipWithPar(self, that(), (a, b) => a.merge(b)));
}
/**
 * Combines this layer with the specified layer, producing a new layer that
 * has the inputs and outputs of both.
 *
 * @tsplus static ets/Layer/Aspects and
 */

export const and = that => self => and_(self, that);
//# sourceMappingURL=and.mjs.map