// ets_tracing: off import type * as T from "../../../Effect/index.js" import * as ContramapEffect from "./contramapEffect.js" import type * as C from "./core.js" import * as MapEffect from "./mapEffect.js" /** * Effectfully transforms both inputs and result of this sink using the provided functions. */ export function dimapEffect_< R, R1, R2, InErr, InErr1 extends InErr, In, In1, OutErr, OutErr1, L, Z, Z1 >( self: C.Sink, f: (in_: In1) => T.Effect, g: (z: Z) => T.Effect ): C.Sink { return MapEffect.mapEffect_(ContramapEffect.contramapEffect_(self, f), g) } /** * Effectfully transforms both inputs and result of this sink using the provided functions. * * @ets_data_first dimapEffect_ */ export function dimapEffect< R1, R2, InErr, InErr1 extends InErr, In, In1, OutErr1, Z, Z1 >(f: (in_: In1) => T.Effect, g: (z: Z) => T.Effect) { return (self: C.Sink) => dimapEffect_(self, f, g) }