DA.Bifunctor
Module Snapshot
Lifecycle
Stable.
Notices
Status:
active
Introduced in: 3.4.9
Removed in: -
Warnings: 0
Deprecations: 0
Deprecated since: -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: