Bifunctor

trait Bifunctor[F[_, _]]

A type giving rise to two unrelated scalaz.Functors.

Companion
object
class Object
trait Matchable
class Any

Value members

Abstract methods

def bimap[A, B, C, D](fab: F[A, B])(f: A => C, g: B => D): F[C, D]

map over both type parameters.

map over both type parameters.

Concrete methods

def compose[G[_, _]](implicit G0: Bifunctor[G]): Bifunctor[[α, β] =>> F[G[α, β], G[α, β]]]

The composition of Bifunctors F and G, [x,y]F[G[x,y],G[x,y]], is a Bifunctor

The composition of Bifunctors F and G, [x,y]F[G[x,y],G[x,y]], is a Bifunctor

def embed[G[_], H[_]](implicit G0: Functor[G], H0: Functor[H]): Bifunctor[[α, β] =>> F[G[α], H[β]]]

Embed two Functors , one on each side

Embed two Functors , one on each side

def embedLeft[G[_]](implicit G0: Functor[G]): Bifunctor[[α, β] =>> F[G[α], β]]

Embed one Functor to the left

Embed one Functor to the left

def embedRight[H[_]](implicit H0: Functor[H]): Bifunctor[[α, β] =>> F[α, H[β]]]

Embed one Functor to the right

Embed one Functor to the right

def leftFunctor[X]: Functor[F]

Extract the Functor on the first param.

Extract the Functor on the first param.

def leftMap[A, B, C](fab: F[A, B])(f: A => C): F[C, B]
def product[G[_, _]](implicit G0: Bifunctor[G]): Bifunctor[[α, β] =>> (F[α, β], G[α, β])]

The product of Bifunctors F and G, [x,y](F[x,y], G[x,y]), is a Bifunctor

The product of Bifunctors F and G, [x,y](F[x,y], G[x,y]), is a Bifunctor

def rightFunctor[X]: Functor[[_] =>> F[X, _$8]]

Extract the Functor on the second param.

Extract the Functor on the second param.

def rightMap[A, B, D](fab: F[A, B])(g: B => D): F[A, D]

Unify the functor over both params.

Unify the functor over both params.

def umap[A, B](faa: F[A, A])(f: A => B): F[B, B]
def widen[A, B, C >: A, D >: B](fab: F[A, B]): F[C, D]

Bifunctors are covariant by nature

Bifunctors are covariant by nature

Concrete fields