Unary type constructor that supports an xmap
operation that converts an F[A]
to an F[B]
given
two functions, A => B
and B => A
.
An invariant functor must satisfy two laws:
- identity - xmap(ma)(identity, identity) == ma
- composite - xmap(xmap(ma, f1, g1), f2, g2) == xmap(ma, f2 compose f1, g1, compose g2)
Also known as an exponential functor.
- See also
- Companion
- object
class Object
trait Matchable
class Any
trait Contravariant[F]
trait Divide[F]
trait Divisible[F]
trait Decidable[F]
trait Functor[F]
trait Align[F]
trait Apply[F]
trait Applicative[F]
trait Alt[F]
trait ApplicativePlus[F]
trait MonadPlus[F]
trait Monad[F]
trait Nondeterminism[F]
trait Bind[F]
trait BindRec[F]
trait Cobind[F]
trait Comonad[F]
trait Distributive[F]
trait OverrideWiden[F]
trait Traverse[F]
trait Traverse1[F]
trait InvariantApplicative[F]
trait InvariantAlt[F]