# Applicative

## Definitions

`def *>(ma: m[a], mb: m[b]): m[b]`Source

`*>` is an operator alias for `productRight`.

`def <*(ma: m[a], mb: m[b]): m[a]`Source

`<*` is an operator alias for `productLeft`.

`def <**>(ma: m[a], mf: m[a -> b \ ef]): m[b] \ ef`Source

`<**>` is a variant of the operator `<*>` with its arguments flipped.

The order of evaluation is `ma` then `mf`.

`def <*>(mf: m[a -> b \ ef], ma: m[a]): m[b] \ ef`Source

`<*>` is an operator alias for `ap`.

`def product(fa: m[a], fb: m[b]): m[(a, b)]`Source

Chain two applicative actions, returns the product of their results.

`def product3(x1: m[t1], x2: m[t2], x3: m[t3]): m[(t1, t2, t3)]`Source

Chain three applicative actions, return the 3-tuple of their results.

`def product4(x1: m[t1], x2: m[t2], x3: m[t3], x4: m[t4]): m[(t1, t2, t3, t4)]`Source

Chain four applicative actions, return the 4-tuple of their results.

`def product5(x1: m[t1], x2: m[t2], x3: m[t3], x4: m[t4], x5: m[t5]): m[(t1, t2, t3, t4, t5)]`Source

Chain five applicative actions, return the 5-tuple of their results.

`def productLeft(fa: m[a], fb: m[b]): m[a]`Source

Chain two applicative actions, return only the result of the first.

`def productRight(fa: m[a], fb: m[b]): m[b]`Source

Chain two applicative actions, return only the result of the second.