Skip to content
Effect Days 2026 Get your ticket

Bicovariant

4 exports Added in v0.24.0 Source

Other

Returns a default ternary bimap composition.

Signature

declare function bimapComposition<F extends TypeLambda, G extends TypeLambda>(CovariantF: Covariant<F>, BicovariantG: Bicovariant<G>): <FR, FO, FE, GR, GO, E1, A, E2, B>(self: Kind<F, FR, FO, FE, Kind<G, GR, GO, E1, A>>, f: (e: E1) => E2, g: (a: A) => B) => Kind<F, FR, FO, FE, Kind<G, GR, GO, E2, B>>

map

Added in v0.24.0 Source

Returns a default map implementation.

Signature

declare function map<F extends TypeLambda>(F: Bicovariant<F>): {
<A, B>(f: (a: A) => B): <R, O, E>(self: Kind<F, R, O, E, A>) => Kind<F, R, O, E, B>;
<R, O, E, A, B>(self: Kind<F, R, O, E, A>, f: (a: A) => B): Kind<F, R, O, E, B>;
}

mapLeft

Added in v0.24.0 Source

Returns a default mapLeft implementation.

Signature

declare function mapLeft<F extends TypeLambda>(F: Bicovariant<F>): {
<E, G>(f: (e: E) => G): <R, O, A>(self: Kind<F, R, O, E, A>) => Kind<F, R, O, G, A>;
<R, O, E, A, G>(self: Kind<F, R, O, E, A>, f: (e: E) => G): Kind<F, R, O, G, A>;
}

Type Class

Bicovariant interface

Added in v0.24.0 Source

Signature

interface Bicovariant<F extends TypeLambda> extends TypeClass<F> {
readonly bimap: {
<E1, E2, A, B>(f: (e: E1) => E2, g: (a: A) => B): <R, O>(self: Kind<F, R, O, E1, A>) => Kind<F, R, O, E2, B>;
<R, O, E1, A, E2, B>(self: Kind<F, R, O, E1, A>, f: (e: E1) => E2, g: (a: A) => B): Kind<F, R, O, E2, B>;
};
}