Bifunctor

磨機 Functor 的執行在單一型別引數中是協變的。例如,如果 fFunctor,那麼給定 f a,以及形式 a -> b 的函式,可以獲得 f b(通過使用 fmap)。

Bifunctor兩個型別引數中是協變的。如果 fBifunctor,那麼給出一個 f a b 和兩個函式,一個來自 a -> c,另一個來自 b -> d,那麼就可以獲得一個 f c d(使用 bimap)。

first 應該被認為是第一類引數的 fmapsecond 作為第二類的 fmapbimap 應該被設想為分別在第一和第二型別引數上共同對映兩個函式。