Formally, the class Profunctor represents a profunctor from Hask ->
Hask.

Intuitively it is a bifunctor where the first argument is
contravariant and the second argument is covariant.
