MCPcopy
hub / github.com/Effect-TS/effect / ap

Function ap

packages/typeclass/src/SemiApplicative.ts:58–72  ·  view source on GitHub ↗
(F: SemiApplicative<F>)

Source from the content-addressed store, hash-verified

56 * @since 0.24.0
57 */
58export const ap = <F extends TypeLambda>(F: SemiApplicative<F>): {
59 <R2, O2, E2, A>(
60 that: Kind<F, R2, O2, E2, A>
61 ): <R1, O1, E1, B>(
62 self: Kind<F, R1, O1, E1, (a: A) => B>
63 ) => Kind<F, R1 & R2, O2 | O1, E2 | E1, B>
64 <R1, O1, E1, A, B, R2, O2, E2>(
65 self: Kind<F, R1, O1, E1, (a: A) => B>,
66 that: Kind<F, R2, O2, E2, A>
67 ): Kind<F, R1 & R2, O1 | O2, E1 | E2, B>
68} =>
69 dual(2, <R1, O1, E1, A, B, R2, O2, E2>(
70 self: Kind<F, R1, O1, E1, (a: A) => B>,
71 that: Kind<F, R2, O2, E2, A>
72 ): Kind<F, R1 & R2, O1 | O2, E1 | E2, B> => zipWith(F)(self, that, (f, a) => f(a)))
73
74/**
75 * @since 0.24.0

Callers 2

productManyFromApFunction · 0.85

Calls 2

zipWithFunction · 0.85
fFunction · 0.50

Tested by 1

productManyFromApFunction · 0.68