Skip to content
Effect Days 2026 Get your ticket

SemiApplicative

7 exports Added in v0.24.0 Source

Lifting

getSemigroup

Added in v0.24.0 Source

Lift a Semigroup into 'F', the inner values are combined using the provided Semigroup.

Signature

declare function getSemigroup<F extends TypeLambda>(F: SemiApplicative<F>): <A, R, O, E>(S: Semigroup<A>) => Semigroup<Kind<F, R, O, E, A>>

lift2

Added in v0.24.0 Source

Lifts a binary function into F.

Signature

declare function lift2<F extends TypeLambda>(F: SemiApplicative<F>): <A, B, C>(f: (a: A, b: B) => C) => {
<R2, O2, E2>(that: Kind<F, R2, O2, E2, B>): <R1, O1, E1>(self: Kind<F, R1, O1, E1, A>) => Kind<F, R1 & R2, O2 | O1, E2 | E1, C>;
<R1, O1, E1, R2, O2, E2>(self: Kind<F, R1, O1, E1, A>, that: Kind<F, R2, O2, E2, B>): Kind<F, R1 & R2, O1 | O2, E1 | E2, C>;
}

Other

ap

Added in v0.24.0 Source

Signature

declare function ap<F extends TypeLambda>(F: SemiApplicative<F>): {
<R2, O2, E2, A>(that: Kind<F, R2, O2, E2, A>): <R1, O1, E1, B>(self: Kind<F, R1, O1, E1, (a: A) => B>) => Kind<F, R1 & R2, O2 | O1, E2 | E1, B>;
<R1, O1, E1, A, B, R2, O2, E2>(self: Kind<F, R1, O1, E1, (a: A) => B>, that: Kind<F, R2, O2, E2, A>): Kind<F, R1 & R2, O1 | O2, E1 | E2, B>;
}

zipLeft

Added in v0.24.0 Source

Signature

declare function zipLeft<F extends TypeLambda>(F: SemiApplicative<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>;
}

zipRight

Added in v0.24.0 Source

Signature

declare function zipRight<F extends TypeLambda>(F: SemiApplicative<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>;
}

zipWith

Added in v0.24.0 Source

Zips two F values together using a provided function, returning a new F of the result.

Signature

declare function zipWith<F extends TypeLambda>(F: SemiApplicative<F>): {
<R2, O2, E2, B, A, C>(that: Kind<F, R2, O2, E2, B>, f: (a: A, b: B) => C): <R1, O1, E1>(self: Kind<F, R1, O1, E1, A>) => Kind<F, R1 & R2, O2 | O1, E2 | E1, C>;
<R1, O1, E1, A, R2, O2, E2, B, C>(self: Kind<F, R1, O1, E1, A>, that: Kind<F, R2, O2, E2, B>, f: (a: A, b: B) => C): Kind<F, R1 & R2, O1 | O2, E1 | E2, C>;
}

Type Class

SemiApplicative interface

Added in v0.24.0 Source

Signature

interface SemiApplicative<F extends TypeLambda> extends SemiProduct<F>, Covariant<F> {}