Bicovariant
Other
bimapComposition
Added in v0.24.0
Source
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>>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>; };}