9f8ab13e86
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. Formally, the class Bifunctor represents a bifunctor from Hask -> Hask. Intuitively 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.
15 lines
601 B
Text
15 lines
601 B
Text
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.
|
|
|
|
Formally, the class Bifunctor represents a bifunctor from Hask ->
|
|
Hask.
|
|
|
|
Intuitively 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.
|