final case class EitherT[F[_], A, 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
- Serializable
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
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[F, A, B])(implicit M1: Semigroup[B], M2: Semigroup[A], F: Apply[F]): EitherT[F, A, 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)
-
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.
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
===(x: EitherT[F, A, B])(implicit EA: Equal[A], EB: Equal[B], F: Apply[F]): F[Boolean]
Compare two disjunction values for equality.
-
def
app[C](f: ⇒ EitherT[F, A, (B) ⇒ C])(implicit F: Apply[F]): EitherT[F, A, 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[F, C, 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[F, C, D]]
Binary functor traverse on this disjunction.
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
compare(x: EitherT[F, A, 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[F, A, 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[F, A, 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[F, A, C])(implicit F: Monad[F]): EitherT[F, A, C]
Bind through the right of this disjunction.
-
def
flatMapF[C](f: (B) ⇒ F[\/[A, C]])(implicit F: Monad[F]): EitherT[F, A, 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 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[_]
- 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[F, C, B]
Run the given function on the left value.
-
def
map[C](f: (B) ⇒ C)(implicit F: Functor[F]): EitherT[F, A, C]
Map on the right of this disjunction.
- def mapT[G[_], C, D](f: (F[\/[A, B]]) ⇒ G[\/[C, D]]): EitherT[G, C, 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[F, A, B])(implicit F: Monad[F]): EitherT[F, A, 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
|||
- 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[F, B, 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[F, AA, 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
traverse[G[_], C](f: (B) ⇒ G[C])(implicit F: Traverse[F], G: Applicative[G]): G[EitherT[F, A, C]]
Traverse on the right of this disjunction.
-
def
unary_~(implicit F: Functor[F]): EitherT[F, B, A]
Flip the left/right values in this disjunction.
Flip the left/right values in this disjunction. Alias for
unary_~
-
def
validation(implicit F: Functor[F]): F[Validation[A, B]]
Convert to a validation.
-
def
validationed[AA, BB](k: (Validation[A, B]) ⇒ Validation[AA, BB])(implicit F: Functor[F]): EitherT[F, AA, 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( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
withFilter(p: (B) ⇒ Boolean)(implicit M: Monoid[A], F: Monad[F]): EitherT[F, A, 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[F, A, B])(implicit F: Monad[F]): EitherT[F, A, 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[F, AA, BB]
Run the given function on this swapped value.
Run the given function on this swapped value. Alias for
swapped