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.

Homepage:
http://hackage.haskell.org/package/profunctors
