foundation-0.0.15: Alternative prelude with batteries and no dependencies

Formally, the class Bifunctor represents a bifunctor from Hask -> Hask.
You can define a Bifunctor by either defining bimap or by defining both first and second.