EitherK

final case class EitherK[F[_], G[_], A](run: Either[F[A], G[A]])

F on the left and G on the right of scala.util.Either.

Value parameters:
run

The underlying scala.util.Either.

Companion:
object
trait Product
trait Equals
class Object
trait Matchable
class Any

Value members

Concrete methods

def coflatMap[B](f: EitherK[F, G, A] => B)(implicit F: CoflatMap[F], G: CoflatMap[G]): EitherK[F, G, B]
def coflatten(implicit F: CoflatMap[F], G: CoflatMap[G]): EitherK[F, G, EitherK[F, G, A]]
def contramap[B](f: B => A)(implicit F: Contravariant[F], G: Contravariant[G]): EitherK[F, G, B]
def extract(implicit F: Comonad[F], G: Comonad[G]): A
def fold[H[_]](f: FunctionK[F, H], g: FunctionK[G, H]): H[A]

Fold this eitherK into a new type constructor using two natural transformations.

Fold this eitherK into a new type constructor using two natural transformations.

Example:

scala> import cats.arrow.FunctionK
scala> import cats.data.EitherK
scala> val listToOption = λ[FunctionK[List, Option]](_.headOption)
scala> val optionToOption = FunctionK.id[Option]
scala> val cp1: EitherK[List, Option, Int] = EitherK.leftc(List(1,2,3))
scala> val cp2: EitherK[List, Option, Int] = EitherK.rightc(Some(4))
scala> cp1.fold(listToOption, optionToOption)
res0: Option[Int] = Some(1)
scala> cp2.fold(listToOption, optionToOption)
res1: Option[Int] = Some(4)
def foldLeft[B](z: B)(f: (B, A) => B)(implicit F: Foldable[F], G: Foldable[G]): B
def foldMap[B](f: A => B)(implicit F: Foldable[F], G: Foldable[G], M: Monoid[B]): B
def foldRight[B](z: Eval[B])(f: (A, Eval[B]) => Eval[B])(implicit F: Foldable[F], G: Foldable[G]): Eval[B]
def map[B](f: A => B)(implicit F: Functor[F], G: Functor[G]): EitherK[F, G, B]
def mapK[H[_]](f: FunctionK[G, H]): EitherK[F, H, A]

Modify the right side context G using transformation f.

Modify the right side context G using transformation f.

def swap: EitherK[G, F, A]
def toValidated: Validated[F[A], G[A]]
def traverse[X[_], B](g: A => X[B])(implicit F: Traverse[F], G: Traverse[G], A: Applicative[X]): X[EitherK[F, G, B]]

Inherited methods

Inherited from:
Product