A profunctor is a functor, equivalently a categorified relation or bimodule. It assigns to each pair a set of heteromorphisms, contravariantly in and covariantly in . Profunctors compose by a coend, , which is a colimit over the twisted-arrow category, with the hom-functor as unit; these data assemble into a bicategory . Each functor induces two representable profunctors, its companion and its conjoint . A profunctor in one variable is a presheaf, whereas adding a monoidal action on the middle gives the Tambara modules underlying optics and pre-lenses. The pro- in profunctor marks this two-sided generalisation, one entry in the table of categorical-modifier-prefixes.
References
Jean Benabou, “Les distributeurs”, Rapport 33, Univ. Catholique de Louvain (1973)
Craig Pastro, Ross Street, “Doubles for monoidal categories”, Theory Appl. Categ. 21 (2008)