Описание тега bifunctor

Бифунктор - это конструктор типа с двумя параметрами ковариантного типа, которые могут быть "сопоставлены". Примеры включают кортежи и типы Either (также известные как результат, дизъюнкция).

В haskell реализацией канонических бифункторов является пакет бифункторов Эдварда Кметта. Он обеспечиваетBifunctorкласс с несколькими общими экземплярами и рядом других полезных модулей. Основные функции для работы сBifunctor являются first, second а также bimap, как видно из следующего ghci стенограмма:

> import Data.Bifunctor
> let pair = (5, "hi")
> first (*6) pair
(30,"hi")
> second (fmap toUpper) pair
(5,"HI")
> bimap (*6) (fmap toUpper) pair
(30,"HI")