Typeclasses
class Bifunctor p
A bifunctor is a type constructor that takes
two type arguments and is a functor in both arguments. That
is, unlike with Functor, a type constructor such as Either
does not need to be partially applied for a Bifunctor
instance, and the methods in this class permit mapping
functions over the Left value or the Right value,
or both at the same time.
It is a bifunctor where both the first and second
arguments are covariant.
You can define a Bifunctor by either defining bimap or by
defining both first and second.
If you supply bimap, you should ensure that:
-
bimap: (a->b) -> (c->d) ->pac->pbdMap over both arguments at the same time.Examples: -
first: (a->b) ->pac->pbcMap covariantly over the first argument.Examples: -
second: (b->c) ->pab->pacMap covariantly over the second argument.Examples:
- instance
BifunctorEither - instance
Bifunctor() - instance
Bifunctorx1 - instance
Bifunctor(x1,x2) - instance
Bifunctor(x1,x2,x3) - instance
Bifunctor(x1,x2,x3,x4) - instance
Bifunctor(x1,x2,x3,x4,x5)
History
Added
3.4.9