Profunctor Optics and Doubles for Monoidal Categories

Bartosz Milewski – 8 May 2019

A lot of ideas from category theory find their practical application in programming languages. The optics library is probably the most extreme example. We have lenses and prisms, which categorize the idea of decomposing and recomposing products and coproducts, giving interpretation to doubles of monoidal categories. Then we have their implementation in terms of profunctors, which relate, through Yoneda embedding, to Tambara modules. But optics go beyond Tambara modules and monoidal structures. There are grates based on closed structures, and traversals that have so far eluded categorical derivation.