FlatMap
Other
Signature
declare function composeK<F extends TypeLambda>(F: FlatMap<F>): { <B, R2, O2, E2, C>(bfc: (b: B) => Kind<F, R2, O2, E2, C>): <A, R1, O1, E1>(afb: (a: A) => Kind<F, R1, O1, E1, B>) => (a: A) => Kind<F, R1 & R2, O2 | O1, E2 | E1, C>; <A, R1, O1, E1, B, R2, O2, E2, C>(afb: (a: A) => Kind<F, R1, O1, E1, B>, bfc: (b: B) => Kind<F, R2, O2, E2, C>): (a: A) => Kind<F, R1 & R2, O1 | O2, E1 | E2, C>;}Signature
declare function flatten<F extends TypeLambda>(F: FlatMap<F>): <R2, O2, E2, R1, O1, E1, A>(self: Kind<F, R2, O2, E2, Kind<F, R1, O1, E1, A>>) => Kind<F, R1 & R2, O2 | O1, E2 | E1, A>A variant of flatMap that ignores the value produced by this effect.
Signature
declare function zipRight<F extends TypeLambda>(F: FlatMap<F>): { <R2, O2, E2, B>(that: Kind<F, R2, O2, E2, B>): <R1, O1, E1, _>(self: Kind<F, R1, O1, E1, _>) => Kind<F, R1 & R2, O2 | O1, E2 | E1, B>; <R1, O1, E1, _, R2, O2, E2, B>(self: Kind<F, R1, O1, E1, _>, that: Kind<F, R2, O2, E2, B>): Kind<F, R1 & R2, O1 | O2, E1 | E2, B>;}Type Class
Signature
interface FlatMap<F extends TypeLambda> extends TypeClass<F> { readonly flatMap: { <A, R2, O2, E2, B>(f: (a: 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, B>; <R1, O1, E1, A, R2, O2, E2, B>(self: Kind<F, R1, O1, E1, A>, f: (a: A) => Kind<F, R2, O2, E2, B>): Kind<F, R1 & R2, O1 | O2, E1 | E2, B>; };}