Equivalent to join(map(fa)(f))
.
Equivalent to join(map(fa)(f))
.
Lift f
into F
and apply to F[A]
.
Lift f
into F
and apply to F[A]
.
Sequence f
, then fa
, combining their results by function
application.
Sequence f
, then fa
, combining their results by function
application.
NB: with respect to apply2
and all other combinators, as well
as scalaz.Bind, the f
action appears to the *left*. So
f
should be the "first" F
-action to perform. This is in
accordance with all other implementations of this typeclass in
common use, which are "function first".
Flipped variant of ap
.
Flipped variant of ap
.
Alias for map
.
Alias for map
.
Add a unit to any Apply to form an Applicative.
Add a unit to any Apply to form an Applicative.
The composition of Functor F
and Bifunctor G
, [x, y]F[G[x, y]]
, is a Bifunctor
The composition of Functor F
and Bifunctor G
, [x, y]F[G[x, y]]
, is a Bifunctor
The composition of Applys F
and G
, [x]F[G[x]]
, is a Apply
The composition of Applys F
and G
, [x]F[G[x]]
, is a Apply
The composition of Functors F
and G
, [x]F[G[x]]
, is a Functor
The composition of Functors F
and G
, [x]F[G[x]]
, is a Functor
Combine fa
and fb
according to Apply[F]
with a function that discards the A
(s)
Combine fa
and fb
according to Apply[F]
with a function that discards the A
(s)
Combine fa
and fb
according to Apply[F]
with a function that discards the B
(s)
Combine fa
and fb
according to Apply[F]
with a function that discards the B
(s)
An Apply
for F
in which effects happen in the opposite order.
An Apply
for F
in which effects happen in the opposite order.
Repeats an applicative action infinitely
Twin all A
s in fa
.
Twin all A
s in fa
.
Pair all A
s in fa
with the result of function application.
Pair all A
s in fa
with the result of function application.
The composition of Functor F and Contravariant G, [x]F[G[x]]
,
is contravariant.
The composition of Functor F and Contravariant G, [x]F[G[x]]
,
is contravariant.
if
lifted into a binding.
if
lifted into a binding. Unlike lift3((t,c,a)=>if(t)c else
a)
, this will only include context from the chosen of ifTrue
and ifFalse
, not the other.
Sequence the inner F
of FFA
after the outer F
, forming a
single F[A]
.
Sequence the inner F
of FFA
after the outer F
, forming a
single F[A]
.
Lift f
into F
.
Lift f
into F
.
Lift apply(a)
, and apply the result to f
.
Lift apply(a)
, and apply the result to f
.
Pair A
with the result of function application.
Pair A
with the result of function application.
The product of BindRec F
and G
, [x](F[x], G[x]])
, is a BindRec
The product of Bind F
and G
, [x](F[x], G[x]])
, is a Bind
The product of Bind F
and G
, [x](F[x], G[x]])
, is a Bind
The product of Applys F
and G
, [x](F[x], G[x]])
, is a Apply
The product of Applys F
and G
, [x](F[x], G[x]])
, is a Apply
The product of Functors F
and G
, [x](F[x], G[x]])
, is a Functor
The product of Functors F
and G
, [x](F[x], G[x]])
, is a Functor
Inject a
to the left of B
s in f
.
Inject a
to the left of B
s in f
.
Inject b
to the right of A
s in f
.
Inject b
to the right of A
s in f
.
Unfold seed
to the right and combine effects left-to-right,
using the given Reducer to combine values.
Empty fa
of meaningful pure values, preserving its
structure.
Empty fa
of meaningful pure values, preserving its
structure.
Functors are covariant by nature, so we can treat an F[A]
as
an F[B]
if A
is a subtype of B
.
Functors are covariant by nature, so we can treat an F[A]
as
an F[B]
if A
is a subtype of B
.
Converts ma
to a value of type F[B]
using the provided functions f
and g
.
Converts ma
to a value of type F[B]
using the provided functions f
and g
.
Converts ma
to a value of type F[B]
using the provided bijection.
Converts ma
to a value of type F[B]
using the provided bijection.
Converts ma
to a value of type F[B]
using the provided isomorphism.
Converts ma
to a value of type F[B]
using the provided isomorphism.
scalaz.Bind capable of using constant stack space when doing recursive binds.
Implementations of
tailrecM
should not make recursive calls without the@tailrec
annotation.Based on Phil Freeman's work on stack safety in PureScript, described in Stack Safety for Free.