trait Monad[F[_]] extends Applicative[F] with Bind[F]
Monad, an scalaz.Applicative that also supports scalaz.Bind, circumscribed by the monad laws.
- Self Type
- Monad[F]
- Source
- Monad.scala
- See also
- Alphabetic
- By Inheritance
- Monad
- Bind
- Applicative
- InvariantApplicative
- Apply
- Functor
- InvariantFunctor
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- trait ApplicativeLaw extends ApplyLaw
- Definition Classes
- Applicative
- trait ApplyLaw extends FunctorLaw
- Definition Classes
- Apply
- trait FlippedApply extends Apply[F]
- Attributes
- protected[this]
- Definition Classes
- Apply
- trait BindLaw extends ApplyLaw
- Definition Classes
- Bind
- trait FunctorLaw extends InvariantFunctorLaw
- Definition Classes
- Functor
- trait InvariantFunctorLaw extends AnyRef
- Definition Classes
- InvariantFunctor
- trait MonadLaw extends ApplicativeLaw with BindLaw
Abstract Value Members
- abstract def bind[A, B](fa: F[A])(f: (A) => F[B]): F[B]
Equivalent to
join(map(fa)(f))
.Equivalent to
join(map(fa)(f))
.- Definition Classes
- Bind
- abstract def point[A](a: => A): F[A]
- Definition Classes
- Applicative
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def ap[A, B](fa: => F[A])(f: => F[(A) => B]): F[B]
Sequence
f
, thenfa
, combining their results by function application.Sequence
f
, thenfa
, combining their results by function application.NB: with respect to
apply2
and all other combinators, as well as scalaz.Bind, thef
action appears to the *left*. Sof
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". - def ap2[A, B, C](fa: => F[A], fb: => F[B])(f: F[(A, B) => C]): F[C]
- Definition Classes
- Apply
- def ap3[A, B, C, D](fa: => F[A], fb: => F[B], fc: => F[C])(f: F[(A, B, C) => D]): F[D]
- Definition Classes
- Apply
- def ap4[A, B, C, D, E](fa: => F[A], fb: => F[B], fc: => F[C], fd: => F[D])(f: F[(A, B, C, D) => E]): F[E]
- Definition Classes
- Apply
- def ap5[A, B, C, D, E, R](fa: => F[A], fb: => F[B], fc: => F[C], fd: => F[D], fe: => F[E])(f: F[(A, B, C, D, E) => R]): F[R]
- Definition Classes
- Apply
- def ap6[A, B, C, D, E, FF, R](fa: => F[A], fb: => F[B], fc: => F[C], fd: => F[D], fe: => F[E], ff: => F[FF])(f: F[(A, B, C, D, E, FF) => R]): F[R]
- Definition Classes
- Apply
- def ap7[A, B, C, D, E, FF, G, R](fa: => F[A], fb: => F[B], fc: => F[C], fd: => F[D], fe: => F[E], ff: => F[FF], fg: => F[G])(f: F[(A, B, C, D, E, FF, G) => R]): F[R]
- Definition Classes
- Apply
- def ap8[A, B, C, D, E, FF, G, H, R](fa: => F[A], fb: => F[B], fc: => F[C], fd: => F[D], fe: => F[E], ff: => F[FF], fg: => F[G], fh: => F[H])(f: F[(A, B, C, D, E, FF, G, H) => R]): F[R]
- Definition Classes
- Apply
- def apF[A, B](f: => F[(A) => B]): (F[A]) => F[B]
Flipped variant of
ap
.Flipped variant of
ap
.- Definition Classes
- Apply
- def applicativeLaw: ApplicativeLaw
- Definition Classes
- Applicative
- val applicativeSyntax: ApplicativeSyntax[F]
- Definition Classes
- Applicative
- def apply[A, B](fa: F[A])(f: (A) => B): F[B]
Alias for
map
.Alias for
map
.- Definition Classes
- Functor
- def apply10[A, B, C, D, E, FF, G, H, I, J, R](fa: => F[A], fb: => F[B], fc: => F[C], fd: => F[D], fe: => F[E], ff: => F[FF], fg: => F[G], fh: => F[H], fi: => F[I], fj: => F[J])(f: (A, B, C, D, E, FF, G, H, I, J) => R): F[R]
- Definition Classes
- Apply
- def apply11[A, B, C, D, E, FF, G, H, I, J, K, R](fa: => F[A], fb: => F[B], fc: => F[C], fd: => F[D], fe: => F[E], ff: => F[FF], fg: => F[G], fh: => F[H], fi: => F[I], fj: => F[J], fk: => F[K])(f: (A, B, C, D, E, FF, G, H, I, J, K) => R): F[R]
- Definition Classes
- Apply
- def apply12[A, B, C, D, E, FF, G, H, I, J, K, L, R](fa: => F[A], fb: => F[B], fc: => F[C], fd: => F[D], fe: => F[E], ff: => F[FF], fg: => F[G], fh: => F[H], fi: => F[I], fj: => F[J], fk: => F[K], fl: => F[L])(f: (A, B, C, D, E, FF, G, H, I, J, K, L) => R): F[R]
- Definition Classes
- Apply
- def apply2[A, B, C](fa: => F[A], fb: => F[B])(f: (A, B) => C): F[C]
- def apply3[A, B, C, D](fa: => F[A], fb: => F[B], fc: => F[C])(f: (A, B, C) => D): F[D]
- Definition Classes
- Apply
- def apply4[A, B, C, D, E](fa: => F[A], fb: => F[B], fc: => F[C], fd: => F[D])(f: (A, B, C, D) => E): F[E]
- Definition Classes
- Apply
- def apply5[A, B, C, D, E, R](fa: => F[A], fb: => F[B], fc: => F[C], fd: => F[D], fe: => F[E])(f: (A, B, C, D, E) => R): F[R]
- Definition Classes
- Apply
- def apply6[A, B, C, D, E, FF, R](fa: => F[A], fb: => F[B], fc: => F[C], fd: => F[D], fe: => F[E], ff: => F[FF])(f: (A, B, C, D, E, FF) => R): F[R]
- Definition Classes
- Apply
- def apply7[A, B, C, D, E, FF, G, R](fa: => F[A], fb: => F[B], fc: => F[C], fd: => F[D], fe: => F[E], ff: => F[FF], fg: => F[G])(f: (A, B, C, D, E, FF, G) => R): F[R]
- Definition Classes
- Apply
- def apply8[A, B, C, D, E, FF, G, H, R](fa: => F[A], fb: => F[B], fc: => F[C], fd: => F[D], fe: => F[E], ff: => F[FF], fg: => F[G], fh: => F[H])(f: (A, B, C, D, E, FF, G, H) => R): F[R]
- Definition Classes
- Apply
- def apply9[A, B, C, D, E, FF, G, H, I, R](fa: => F[A], fb: => F[B], fc: => F[C], fd: => F[D], fe: => F[E], ff: => F[FF], fg: => F[G], fh: => F[H], fi: => F[I])(f: (A, B, C, D, E, FF, G, H, I) => R): F[R]
- Definition Classes
- Apply
- def applyApplicative: Applicative[[α]\/[F[α], α]]
Add a unit to any Apply to form an Applicative.
Add a unit to any Apply to form an Applicative.
- Definition Classes
- Apply
- def applyLaw: ApplyLaw
- Definition Classes
- Apply
- val applySyntax: ApplySyntax[F]
- Definition Classes
- Apply
- final def applying1[Z, A1](f: (A1) => Z)(implicit a1: F[A1]): F[Z]
- Definition Classes
- Apply
- final def applying2[Z, A1, A2](f: (A1, A2) => Z)(implicit a1: F[A1], a2: F[A2]): F[Z]
- Definition Classes
- Apply
- final def applying3[Z, A1, A2, A3](f: (A1, A2, A3) => Z)(implicit a1: F[A1], a2: F[A2], a3: F[A3]): F[Z]
- Definition Classes
- Apply
- final def applying4[Z, A1, A2, A3, A4](f: (A1, A2, A3, A4) => Z)(implicit a1: F[A1], a2: F[A2], a3: F[A3], a4: F[A4]): F[Z]
- Definition Classes
- Apply
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def bicompose[G[_, _]](implicit arg0: Bifunctor[G]): Bifunctor[[α, β]F[G[α, β]]]
The composition of Functor
F
and BifunctorG
,[x, y]F[G[x, y]]
, is a BifunctorThe composition of Functor
F
and BifunctorG
,[x, y]F[G[x, y]]
, is a Bifunctor- Definition Classes
- Functor
- def bindLaw: BindLaw
- Definition Classes
- Bind
- val bindSyntax: BindSyntax[F]
- Definition Classes
- Bind
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def compose[G[_]](implicit G0: Applicative[G]): Applicative[[α]F[G[α]]]
The composition of Applicatives
F
andG
,[x]F[G[x]]
, is an ApplicativeThe composition of Applicatives
F
andG
,[x]F[G[x]]
, is an Applicative- Definition Classes
- Applicative
- def compose[G[_]](implicit G0: Apply[G]): Apply[[α]F[G[α]]]
The composition of Applys
F
andG
,[x]F[G[x]]
, is a ApplyThe composition of Applys
F
andG
,[x]F[G[x]]
, is a Apply- Definition Classes
- Apply
- def compose[G[_]](implicit G0: Functor[G]): Functor[[α]F[G[α]]]
The composition of Functors
F
andG
,[x]F[G[x]]
, is a FunctorThe composition of Functors
F
andG
,[x]F[G[x]]
, is a Functor- Definition Classes
- Functor
- def counzip[A, B](a: \/[F[A], F[B]]): F[\/[A, B]]
- Definition Classes
- Functor
- def discardLeft[A, B](fa: => F[A], fb: => F[B]): F[B]
Combine
fa
andfb
according toApply[F]
with a function that discards theA
(s)Combine
fa
andfb
according toApply[F]
with a function that discards theA
(s)- Definition Classes
- Apply
- def discardRight[A, B](fa: => F[A], fb: => F[B]): F[A]
Combine
fa
andfb
according toApply[F]
with a function that discards theB
(s)Combine
fa
andfb
according toApply[F]
with a function that discards theB
(s)- Definition Classes
- Apply
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def filterM[A](l: IList[A])(f: (A) => F[Boolean]): F[IList[A]]
Filter
l
according to an applicative predicate.Filter
l
according to an applicative predicate.- Definition Classes
- Applicative
- def filterM[A](l: List[A])(f: (A) => F[Boolean]): F[List[A]]
Filter
l
according to an applicative predicate.Filter
l
according to an applicative predicate.- Definition Classes
- Applicative
- def filterM[A, B](map: ==>>[A, B])(f: (B) => F[Boolean])(implicit O: Order[A]): F[==>>[A, B]]
Filter
map
according to an applicative predicate.Filter
map
according to an applicative predicate. *- Definition Classes
- Applicative
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def flip: Applicative[F]
An
Applicative
forF
in which effects happen in the opposite order.An
Applicative
forF
in which effects happen in the opposite order.- Definition Classes
- Applicative → Apply
- def forever[A, B](fa: F[A]): F[B]
Repeats an applicative action infinitely
Repeats an applicative action infinitely
- Definition Classes
- Apply
- def fpair[A](fa: F[A]): F[(A, A)]
Twin all
A
s infa
.Twin all
A
s infa
.- Definition Classes
- Functor
- def fproduct[A, B](fa: F[A])(f: (A) => B): F[(A, B)]
Pair all
A
s infa
with the result of function application.Pair all
A
s infa
with the result of function application.- Definition Classes
- Functor
- def functorLaw: FunctorLaw
- Definition Classes
- Functor
- val functorSyntax: FunctorSyntax[F]
- Definition Classes
- Functor
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def icompose[G[_]](implicit G0: Contravariant[G]): Contravariant[[α]F[G[α]]]
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.- Definition Classes
- Functor
- def ifM[B](value: F[Boolean], ifTrue: => F[B], ifFalse: => F[B]): F[B]
if
lifted into a binding.if
lifted into a binding. Unlikelift3((t,c,a)=>if(t)c else a)
, this will only include context from the chosen ofifTrue
andifFalse
, not the other.- Definition Classes
- Bind
- val invariantApplicativeSyntax: InvariantApplicativeSyntax[F]
- Definition Classes
- InvariantApplicative
- def invariantFunctorLaw: InvariantFunctorLaw
- Definition Classes
- InvariantFunctor
- val invariantFunctorSyntax: InvariantFunctorSyntax[F]
- Definition Classes
- InvariantFunctor
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def iterateUntil[A](f: F[A])(p: (A) => Boolean): F[A]
Execute an action repeatedly until its result satisfies the given predicate and return that result, discarding all others.
- def iterateWhile[A](f: F[A])(p: (A) => Boolean): F[A]
Execute an action repeatedly until its result fails to satisfy the given predicate and return that result, discarding all others.
- def join[A](ffa: F[F[A]]): F[A]
Sequence the inner
F
ofFFA
after the outerF
, forming a singleF[A]
.Sequence the inner
F
ofFFA
after the outerF
, forming a singleF[A]
.- Definition Classes
- Bind
- def lift[A, B](f: (A) => B): (F[A]) => F[B]
Lift
f
intoF
.Lift
f
intoF
.- Definition Classes
- Functor
- def lift10[A, B, C, D, E, FF, G, H, I, J, R](f: (A, B, C, D, E, FF, G, H, I, J) => R): (F[A], F[B], F[C], F[D], F[E], F[FF], F[G], F[H], F[I], F[J]) => F[R]
- Definition Classes
- Apply
- def lift11[A, B, C, D, E, FF, G, H, I, J, K, R](f: (A, B, C, D, E, FF, G, H, I, J, K) => R): (F[A], F[B], F[C], F[D], F[E], F[FF], F[G], F[H], F[I], F[J], F[K]) => F[R]
- Definition Classes
- Apply
- def lift12[A, B, C, D, E, FF, G, H, I, J, K, L, R](f: (A, B, C, D, E, FF, G, H, I, J, K, L) => R): (F[A], F[B], F[C], F[D], F[E], F[FF], F[G], F[H], F[I], F[J], F[K], F[L]) => F[R]
- Definition Classes
- Apply
- def lift2[A, B, C](f: (A, B) => C): (F[A], F[B]) => F[C]
- Definition Classes
- Apply
- def lift3[A, B, C, D](f: (A, B, C) => D): (F[A], F[B], F[C]) => F[D]
- Definition Classes
- Apply
- def lift4[A, B, C, D, E](f: (A, B, C, D) => E): (F[A], F[B], F[C], F[D]) => F[E]
- Definition Classes
- Apply
- def lift5[A, B, C, D, E, R](f: (A, B, C, D, E) => R): (F[A], F[B], F[C], F[D], F[E]) => F[R]
- Definition Classes
- Apply
- def lift6[A, B, C, D, E, FF, R](f: (A, B, C, D, E, FF) => R): (F[A], F[B], F[C], F[D], F[E], F[FF]) => F[R]
- Definition Classes
- Apply
- def lift7[A, B, C, D, E, FF, G, R](f: (A, B, C, D, E, FF, G) => R): (F[A], F[B], F[C], F[D], F[E], F[FF], F[G]) => F[R]
- Definition Classes
- Apply
- def lift8[A, B, C, D, E, FF, G, H, R](f: (A, B, C, D, E, FF, G, H) => R): (F[A], F[B], F[C], F[D], F[E], F[FF], F[G], F[H]) => F[R]
- Definition Classes
- Apply
- def lift9[A, B, C, D, E, FF, G, H, I, R](f: (A, B, C, D, E, FF, G, H, I) => R): (F[A], F[B], F[C], F[D], F[E], F[FF], F[G], F[H], F[I]) => F[R]
- Definition Classes
- Apply
- def liftReducer[A, B](implicit r: Reducer[A, B]): Reducer[F[A], F[B]]
- Definition Classes
- Apply
- def map[A, B](fa: F[A])(f: (A) => B): F[B]
Lift
f
intoF
and apply toF[A]
.Lift
f
intoF
and apply toF[A]
.- Definition Classes
- Monad → Applicative → Functor
- def mapply[A, B](a: A)(f: F[(A) => B]): F[B]
Lift
apply(a)
, and apply the result tof
.Lift
apply(a)
, and apply the result tof
.- Definition Classes
- Functor
- def monadLaw: MonadLaw
- val monadSyntax: MonadSyntax[F]
- def mproduct[A, B](fa: F[A])(f: (A) => F[B]): F[(A, B)]
Pair
A
with the result of function application.Pair
A
with the result of function application.- Definition Classes
- Bind
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def par: Par[F]
A lawful implementation of this that is isomorphic up to the methods defined on Applicative allowing for optimised parallel implementations that would otherwise violate laws of more specific typeclasses (e.g.
A lawful implementation of this that is isomorphic up to the methods defined on Applicative allowing for optimised parallel implementations that would otherwise violate laws of more specific typeclasses (e.g. Monad).
- Definition Classes
- Applicative
- def plusA[A](x: => F[A], y: => F[A])(implicit sa: Semigroup[A]): F[A]
Semigroups can be added within an Applicative
Semigroups can be added within an Applicative
- Definition Classes
- Applicative
- def product[G[_]](implicit G0: Monad[G]): Monad[[α](F[α], G[α])]
The product of Monad
F
andG
,[x](F[x], G[x]])
, is a Monad - def product[G[_]](implicit G0: Bind[G]): Bind[[α](F[α], G[α])]
The product of Bind
F
andG
,[x](F[x], G[x]])
, is a BindThe product of Bind
F
andG
,[x](F[x], G[x]])
, is a Bind- Definition Classes
- Bind
- def product[G[_]](implicit G0: Applicative[G]): Applicative[[α](F[α], G[α])]
The product of Applicatives
F
andG
,[x](F[x], G[x]])
, is an ApplicativeThe product of Applicatives
F
andG
,[x](F[x], G[x]])
, is an Applicative- Definition Classes
- Applicative
- def product[G[_]](implicit G0: Apply[G]): Apply[[α](F[α], G[α])]
The product of Applys
F
andG
,[x](F[x], G[x]])
, is a ApplyThe product of Applys
F
andG
,[x](F[x], G[x]])
, is a Apply- Definition Classes
- Apply
- def product[G[_]](implicit G0: Functor[G]): Functor[[α](F[α], G[α])]
The product of Functors
F
andG
,[x](F[x], G[x]])
, is a FunctorThe product of Functors
F
andG
,[x](F[x], G[x]])
, is a Functor- Definition Classes
- Functor
- final def pure[A](a: => A): F[A]
- Definition Classes
- Applicative
- def replicateM[A](n: Int, fa: F[A]): F[IList[A]]
Performs the action
n
times, returning the list of results.Performs the action
n
times, returning the list of results.- Definition Classes
- Applicative
- def replicateM_[A](n: Int, fa: F[A]): F[Unit]
Performs the action
n
times, returning nothing.Performs the action
n
times, returning nothing.- Definition Classes
- Applicative
- def sequence[A, G[_]](as: G[F[A]])(implicit arg0: Traverse[G]): F[G[A]]
- Definition Classes
- Applicative
- def sequence1[A, G[_]](as: G[F[A]])(implicit arg0: Traverse1[G]): F[G[A]]
- Definition Classes
- Apply
- def strengthL[A, B](a: A, f: F[B]): F[(A, B)]
Inject
a
to the left ofB
s inf
.Inject
a
to the left ofB
s inf
.- Definition Classes
- Functor
- def strengthR[A, B](f: F[A], b: B): F[(A, B)]
Inject
b
to the right ofA
s inf
.Inject
b
to the right ofA
s inf
.- Definition Classes
- Functor
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def traverse[A, G[_], B](value: G[A])(f: (A) => F[B])(implicit G: Traverse[G]): F[G[B]]
- Definition Classes
- Applicative
- def traverse1[A, G[_], B](value: G[A])(f: (A) => F[B])(implicit G: Traverse1[G]): F[G[B]]
- Definition Classes
- Apply
- def tuple2[A, B](fa: => F[A], fb: => F[B]): F[(A, B)]
- Definition Classes
- Apply
- def tuple3[A, B, C](fa: => F[A], fb: => F[B], fc: => F[C]): F[(A, B, C)]
- Definition Classes
- Apply
- def tuple4[A, B, C, D](fa: => F[A], fb: => F[B], fc: => F[C], fd: => F[D]): F[(A, B, C, D)]
- Definition Classes
- Apply
- def tuple5[A, B, C, D, E](fa: => F[A], fb: => F[B], fc: => F[C], fd: => F[D], fe: => F[E]): F[(A, B, C, D, E)]
- Definition Classes
- Apply
- def unfoldrOpt[S, A, B](seed: S)(f: (S) => Maybe[(F[A], S)])(implicit R: Reducer[A, B]): Maybe[F[B]]
Unfold
seed
to the right and combine effects left-to-right, using the given Reducer to combine values. - def unlessM[A](cond: Boolean)(f: => F[A]): F[Unit]
Returns the given argument if
cond
isfalse
, otherwise, unit lifted into F.Returns the given argument if
cond
isfalse
, otherwise, unit lifted into F.- Definition Classes
- Applicative
- def untilM[G[_], A](f: F[A], cond: => F[Boolean])(implicit G: MonadPlus[G]): F[G[A]]
Execute an action repeatedly until the
Boolean
condition returnstrue
.Execute an action repeatedly until the
Boolean
condition returnstrue
. The condition is evaluated after the loop body. Collects results into an arbitraryMonadPlus
value, such as aList
. - def untilM_[A](f: F[A], cond: => F[Boolean]): F[Unit]
Execute an action repeatedly until the
Boolean
condition returnstrue
.Execute an action repeatedly until the
Boolean
condition returnstrue
. The condition is evaluated after the loop body. Discards results. - def void[A](fa: F[A]): F[Unit]
Empty
fa
of meaningful pure values, preserving its structure.Empty
fa
of meaningful pure values, preserving its structure.- Definition Classes
- Functor
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- def whenM[A](cond: Boolean)(f: => F[A]): F[Unit]
Returns the given argument if
cond
istrue
, otherwise, unit lifted into F.Returns the given argument if
cond
istrue
, otherwise, unit lifted into F.- Definition Classes
- Applicative
- def whileM[G[_], A](p: F[Boolean], body: => F[A])(implicit G: MonadPlus[G]): F[G[A]]
Execute an action repeatedly as long as the given
Boolean
expression returnstrue
.Execute an action repeatedly as long as the given
Boolean
expression returnstrue
. The condition is evaluated before the loop body. Collects the results into an arbitraryMonadPlus
value, such as aList
. - def whileM_[A](p: F[Boolean], body: => F[A]): F[Unit]
Execute an action repeatedly as long as the given
Boolean
expression returnstrue
.Execute an action repeatedly as long as the given
Boolean
expression returnstrue
. The condition is evaluated before the loop body. Discards results. - def widen[A, B](fa: F[A])(implicit ev: <~<[A, B]): F[B]
Functors are covariant by nature, so we can treat an
F[A]
as anF[B]
ifA
is a subtype ofB
.Functors are covariant by nature, so we can treat an
F[A]
as anF[B]
ifA
is a subtype ofB
.- Definition Classes
- Functor
- final def xderiving0[Z](z: => Z): F[Z]
- Definition Classes
- InvariantApplicative
- final def xderiving1[Z, A1](f: (A1) => Z, g: (Z) => A1)(implicit a1: F[A1]): F[Z]
- Definition Classes
- InvariantApplicative
- final def xderiving2[Z, A1, A2](f: (A1, A2) => Z, g: (Z) => (A1, A2))(implicit a1: F[A1], a2: F[A2]): F[Z]
- Definition Classes
- InvariantApplicative
- final def xderiving3[Z, A1, A2, A3](f: (A1, A2, A3) => Z, g: (Z) => (A1, A2, A3))(implicit a1: F[A1], a2: F[A2], a3: F[A3]): F[Z]
- Definition Classes
- InvariantApplicative
- final def xderiving4[Z, A1, A2, A3, A4](f: (A1, A2, A3, A4) => Z, g: (Z) => (A1, A2, A3, A4))(implicit a1: F[A1], a2: F[A2], a3: F[A3], a4: F[A4]): F[Z]
- Definition Classes
- InvariantApplicative
- def xmap[A, B](fa: F[A], f: (A) => B, g: (B) => A): F[B]
Converts
ma
to a value of typeF[B]
using the provided functionsf
andg
.Converts
ma
to a value of typeF[B]
using the provided functionsf
andg
.- Definition Classes
- Functor → InvariantFunctor
- def xmapb[A, B](ma: F[A])(b: Bijection[A, B]): F[B]
Converts
ma
to a value of typeF[B]
using the provided bijection.Converts
ma
to a value of typeF[B]
using the provided bijection.- Definition Classes
- InvariantFunctor
- def xmapi[A, B](ma: F[A])(iso: Isomorphism.<=>[A, B]): F[B]
Converts
ma
to a value of typeF[B]
using the provided isomorphism.Converts
ma
to a value of typeF[B]
using the provided isomorphism.- Definition Classes
- InvariantFunctor
- def xproduct0[Z](z: => Z): F[Z]
- Definition Classes
- Applicative → InvariantApplicative
- def xproduct1[Z, A1](a1: => F[A1])(f: (A1) => Z, g: (Z) => A1): F[Z]
- Definition Classes
- Applicative → InvariantApplicative
- def xproduct2[Z, A1, A2](a1: => F[A1], a2: => F[A2])(f: (A1, A2) => Z, g: (Z) => (A1, A2)): F[Z]
- Definition Classes
- Applicative → InvariantApplicative
- def xproduct3[Z, A1, A2, A3](a1: => F[A1], a2: => F[A2], a3: => F[A3])(f: (A1, A2, A3) => Z, g: (Z) => (A1, A2, A3)): F[Z]
- Definition Classes
- Applicative → InvariantApplicative
- def xproduct4[Z, A1, A2, A3, A4](a1: => F[A1], a2: => F[A2], a3: => F[A3], a4: => F[A4])(f: (A1, A2, A3, A4) => Z, g: (Z) => (A1, A2, A3, A4)): F[Z]
- Definition Classes
- Applicative → InvariantApplicative