Plenty faces of a profunctor

What is a profunctor?

Recall that a category is a directed graph equipped with an associative and unital composition of its edges. In the categorical context, the nodes of the graph are also called objects and edges are called arrows or morphisms. The unitality requirement says that each object a has a unit arrow a\to a, called identity, which doesn’t affect the result of the compositions.

A functor is a composition and identity preserving graph morphism from a category to a category.

A profunctor, on the other hand, connects up two categories by (potentially) adding more morphisms in between them ‘from the outer world’. In other perspective, we can describe this setting as one of the two categories acting from the left and the other one acting from the right on the newly added morphisms. This can also be grasped as simply being a two variable functor to the category of sets, contravariant in the first argument.
Continue reading “Plenty faces of a profunctor”