final case class EitherT[A, F[_], B](run: F[\/[A, B]]) extends Product with Serializable
Represents a computation of type F[A \/ B]
.
Example:
val x: Option[String \/ Int] = Some(\/-(1)) EitherT(x).map(1+).run // Some(\/-(2))
- Source
- EitherT.scala
- Alphabetic
- By Inheritance
- EitherT
- Serializable
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- final class Switching_\/[X] extends AnyRef
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def +++(x: => EitherT[A, F, B])(implicit M1: Semigroup[B], M2: Semigroup[A], F: Apply[F]): EitherT[A, F, B]
Sums up values inside disjunction, if both are left or right.
Sums up values inside disjunction, if both are left or right. Returns first left otherwise.
\/-(v1) +++ \/-(v2) → \/-(v1 + v2) \/-(v1) +++ -\/(v2) → -\/(v2) -\/(v1) +++ \/-(v2) → -\/(v1) -\/(v1) +++ -\/(v2) → -\/(v1 + v2)
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def ===(x: EitherT[A, F, B])(implicit EA: Equal[A], EB: Equal[B], F: Apply[F]): F[Boolean]
Compare two disjunction values for equality.
- def app[C](f: => EitherT[A, F, (B) => C])(implicit F: Apply[F]): EitherT[A, F, C]
Apply a function in the environment of the right of this disjunction.
Apply a function in the environment of the right of this disjunction. Because it runs my
F
even whenf
's\/
fails, it is not consistent withap
. - final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def bimap[C, D](f: (A) => C, g: (B) => D)(implicit F: Functor[F]): EitherT[C, F, D]
Binary functor map on this disjunction.
- def bitraverse[G[_], C, D](f: (A) => G[C], g: (B) => G[D])(implicit F: Traverse[F], G: Applicative[G]): G[EitherT[C, F, D]]
Binary functor traverse on this disjunction.
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def compare(x: EitherT[A, F, B])(implicit EA: Order[A], EB: Order[B], F: Apply[F]): F[Ordering]
Compare two disjunction values for ordering.
- def cozip(implicit Z: Cozip[F]): \/[F[A], F[B]]
Cozip this disjunction on its functor.
- def ensure(onLeft: => A)(f: (B) => Boolean)(implicit F: Functor[F]): EitherT[A, F, B]
Ensures that the right value of this disjunction satisfies the given predicate, or returns left with the given value.
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def exists(f: (B) => Boolean)(implicit F: Functor[F]): F[Boolean]
Return
true
if this disjunction is a right value satisfying the given predicate. - def filter(p: (B) => Boolean)(implicit M: Monoid[A], F: Monad[F]): EitherT[A, F, B]
Filter on the right of this disjunction.
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def flatMap[C](f: (B) => EitherT[A, F, C])(implicit F: Monad[F]): EitherT[A, F, C]
Bind through the right of this disjunction.
- def flatMapF[C](f: (B) => F[\/[A, C]])(implicit F: Monad[F]): EitherT[A, F, C]
Bind the inner monad through the right of this disjunction.
- def fold[X](l: (A) => X, r: (B) => X)(implicit F: Functor[F]): F[X]
- def foldConst[X](l: => X, r: => X)(implicit F: Functor[F]): F[X]
- def foldM[X](l: (A) => F[X], r: (B) => F[X])(implicit F: Bind[F]): F[X]
- def foldRight[Z](z: => Z)(f: (B, => Z) => Z)(implicit F: Foldable[F]): Z
Fold on the right of this disjunction.
- def forall(f: (B) => Boolean)(implicit F: Functor[F]): F[Boolean]
Return
true
if this disjunction is a left value or the right value satisfies the given predicate. - final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def getOrElse(default: => B)(implicit F: Functor[F]): F[B]
Return the right value of this disjunction or the given default if left.
Return the right value of this disjunction or the given default if left. Alias for
|
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isLeft(implicit F: Functor[F]): F[Boolean]
Return
true
if this disjunction is left. - def isRight(implicit F: Functor[F]): F[Boolean]
Return
true
if this disjunction is right. - def leftMap[C](f: (A) => C)(implicit F: Functor[F]): EitherT[C, F, B]
Run the given function on the left value.
- def map[C](f: (B) => C)(implicit F: Functor[F]): EitherT[A, F, C]
Map on the right of this disjunction.
- def mapF[C](f: (B) => F[C])(implicit M: Monad[F]): EitherT[A, F, C]
Map on the right of this disjunction.
- def mapT[G[_], C, D](f: (F[\/[A, B]]) => G[\/[C, D]]): EitherT[C, G, D]
- def merge[AA >: A](implicit F: Functor[F], ev: <~<[B, AA]): F[AA]
Return the value from whichever side of the disjunction is defined, given a commonly assignable type.
- 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 orElse(x: => EitherT[A, F, B])(implicit F: Monad[F]): EitherT[A, F, B]
Return this if it is a right, otherwise, return the given value.
Return this if it is a right, otherwise, return the given value. Alias for
|||
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- val run: F[\/[A, B]]
- def show(implicit SA: Show[A], SB: Show[B], F: Functor[F]): F[Cord]
Show for a disjunction value.
- def swap(implicit F: Functor[F]): EitherT[B, F, A]
Flip the left/right values in this disjunction.
Flip the left/right values in this disjunction. Alias for
swap
- def swapped[AA, BB](k: (\/[B, A]) => \/[BB, AA])(implicit F: Functor[F]): EitherT[AA, F, BB]
Run the given function on this swapped value.
Run the given function on this swapped value. Alias for
~
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toEither(implicit F: Functor[F]): F[Either[A, B]]
Convert to a core
scala.Either
at your own peril. - def toList(implicit F: Functor[F]): F[List[B]]
Return an empty list or list with one element on the right of this disjunction.
- def toMaybe(implicit F: Functor[F]): MaybeT[F, B]
Return an empty option or option with one element on the right of this disjunction.
Return an empty option or option with one element on the right of this disjunction. Useful to sweep errors under the carpet.
- def toOption(implicit F: Functor[F]): OptionT[F, B]
Return an empty option or option with one element on the right of this disjunction.
Return an empty option or option with one element on the right of this disjunction. Useful to sweep errors under the carpet.
- def toStream(implicit F: Functor[F]): F[Stream[B]]
Return an empty stream or stream with one element on the right of this disjunction.
- def toThese(implicit F: Functor[F]): TheseT[F, A, B]
Return a
this
on the left-side or athat
on the right-side of this disjunction - def toValidation(implicit F: Functor[F]): F[Validation[A, B]]
Convert to a validation.
- def traverse[G[_], C](f: (B) => G[C])(implicit F: Traverse[F], G: Applicative[G]): G[EitherT[A, F, C]]
Traverse on the right of this disjunction.
- def unary_~(implicit F: Functor[F]): EitherT[B, F, A]
Flip the left/right values in this disjunction.
Flip the left/right values in this disjunction. Alias for
unary_~
- def validationed[AA, BB](k: (Validation[A, B]) => Validation[AA, BB])(implicit F: Functor[F]): EitherT[AA, F, BB]
Run a validation function and back to disjunction again.
- def valueOr(x: (A) => B)(implicit F: Functor[F]): F[B]
Return the right value of this disjunction or run the given function on the left.
- 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 withFilter(p: (B) => Boolean)(implicit M: Monoid[A], F: Monad[F]): EitherT[A, F, B]
Alias for
filter
. - def |(default: => B)(implicit F: Functor[F]): F[B]
Return the right value of this disjunction or the given default if left.
Return the right value of this disjunction or the given default if left. Alias for
getOrElse
- def |||(x: => EitherT[A, F, B])(implicit F: Monad[F]): EitherT[A, F, B]
Return this if it is a right, otherwise, return the given value.
Return this if it is a right, otherwise, return the given value. Alias for
orElse
- def ~[AA, BB](k: (\/[B, A]) => \/[BB, AA])(implicit F: Functor[F]): EitherT[AA, F, BB]
Run the given function on this swapped value.
Run the given function on this swapped value. Alias for
swapped
Deprecated Value Members
- def :?>>[X](right: => X): Switching_\/[X]
If this disjunction is right, return the given X value, otherwise, return the X value given to the return value.
If this disjunction is right, return the given X value, otherwise, return the X value given to the return value.
- Annotations
- @deprecated
- Deprecated
(Since version 7.3.0) Due to SI-1980, <<?: will always evaluate its left argument; use foldConst instead
- def validation(implicit F: Functor[F]): F[Validation[A, B]]
- Annotations
- @deprecated
- Deprecated
(Since version 7.3.0) Use
toValidation