Bicovariant
Other
bimapComposition
Added in v0.24.0
Source
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>>;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>;
};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>;
};
}
Returns a default ternary
bimapcomposition.