bimap :: (a -> b) -> (c -> d) -> p a c -> p b d
first :: (a -> b) -> p a c -> p b c
second :: (b -> c) -> p a b -> p a c
A run of the mill Functor is covariant in a single type parameter. For instance, if f is a Functor, then given an f a, and a function ...