Chainable
Combining
Signature
declare function zipLeft<F extends TypeLambda>(
F: Chainable<F>,
): {
<R2, O2, E2, _>(
that: Kind<F, R2, O2, E2, _>,
): <R1, O1, E1, A>(self: Kind<F, R1, O1, E1, A>) => Kind<F, R1 & R2, O2 | O1, E2 | E1, A>;
<R1, O1, E1, A, R2, O2, E2, _>(
self: Kind<F, R1, O1, E1, A>,
that: Kind<F, R2, O2, E2, _>,
): Kind<F, R1 & R2, O1 | O2, E1 | E2, A>;
};Do Notation
Signature
declare function bind<F extends TypeLambda>(
F: Chainable<F>,
): {
<N extends string, A extends object, R2, O2, E2, B>(
name: Exclude<N, keyof A>,
f: (a: NoInfer<A>) => Kind<F, R2, O2, E2, B>,
): <R1, O1, E1>(
self: Kind<F, R1, O1, E1, A>,
) => Kind<
F,
R1 & R2,
O2 | O1,
E2 | E1,
{ [K in string | number | symbol]: K extends keyof A ? A[K] : B }
>;
<R1, O1, E1, A extends object, N extends string, R2, O2, E2, B>(
self: Kind<F, R1, O1, E1, A>,
name: Exclude<N, keyof A>,
f: (a: NoInfer<A>) => Kind<F, R2, O2, E2, B>,
): Kind<
F,
R1 & R2,
O1 | O2,
E1 | E2,
{ [K in string | number | symbol]: K extends keyof A ? A[K] : B }
>;
};Other
Returns an effect that effectfully "peeks" at the success of this effect.
Signature
declare function tap<F extends TypeLambda>(
F: Chainable<F>,
): {
<A, R2, O2, E2, _>(
f: (a: A) => Kind<F, R2, O2, E2, _>,
): <R1, O1, E1>(self: Kind<F, R1, O1, E1, A>) => Kind<F, R1 & R2, O2 | O1, E2 | E1, A>;
<R1, O1, E1, A, R2, O2, E2, _>(
self: Kind<F, R1, O1, E1, A>,
f: (a: A) => Kind<F, R2, O2, E2, _>,
): Kind<F, R1 & R2, O1 | O2, E1 | E2, A>;
};
Sequences the specified effect after this effect, but ignores the value produced by the effect.