# Profunctors

Published articles for Profunctors.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Yoneda Lemma in Double Categories

DevFeed: [Yoneda Lemma in Double Categories](<https://devfeed.tech/articles/yoneda-lemma-in-double-categories-28865.md>)

Original publisher: [Read original article](<https://bartoszmilewski.com/2026/09/13/yoneda-lemma-in-double-categories/>)

Author: Bartosz Milewski

Published: 2026-09-13T12:23:31Z

Content type: article

Language: en

Sources: [Bartosz Milewski's Programming Cafe](<https://devfeed.tech/sources/bartosz-milewski-s-programming-cafe.md>)

Topics: [Category Theory](<https://devfeed.tech/topics/category-theory.md>), [Profunctors](<https://devfeed.tech/topics/profunctors.md>), [String Diagrams](<https://devfeed.tech/topics/string-diagrams.md>), [Haskell](<https://devfeed.tech/topics/haskell.md>)

Tags: [category-theory](<https://devfeed.tech/tags/category-theory.md>), [double-category](<https://devfeed.tech/tags/double-category.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [kan-extensions](<https://devfeed.tech/tags/kan-extensions.md>), [proarrow-equipment](<https://devfeed.tech/tags/proarrow-equipment.md>), [profunctor-equipment](<https://devfeed.tech/tags/profunctor-equipment.md>), [profunctors](<https://devfeed.tech/tags/profunctors.md>), [string-diagrams](<https://devfeed.tech/tags/string-diagrams.md>), [yoneda-structure](<https://devfeed.tech/tags/yoneda-structure.md>)

### AI overview

The article explains how to formulate the Yoneda lemma in double categories without directly referring to presheaves or hom-sets. It uses profunctors, universal constructions, Kan extensions, tabulations, 2-cells, and string diagrams to describe the Yoneda embedding and its desired properties, including density and full faithfulness.

### Source excerpt

Working with double categories can be aptly summarized in a meme: Talk to me about sets without mentioning sets. We don't talk about hom-sets, we talk about horizontal units. Secretly, we are visualizing horizontal arrows as profunctors, and the unit of profunctor composition is a hom-functor. Presheaves are defined as -valued functors, so we immediately [...]

## Profunctor Optics

DevFeed: [Profunctor Optics](<https://devfeed.tech/articles/profunctor-optics-28864.md>)

Original publisher: [Read original article](<https://bartoszmilewski.com/2026/07/19/profunctor-optics/>)

Author: Bartosz Milewski

Published: 2026-07-19T11:39:02Z

Content type: article

Language: en

Sources: [Bartosz Milewski's Programming Cafe](<https://devfeed.tech/sources/bartosz-milewski-s-programming-cafe.md>)

Topics: [Haskell](<https://devfeed.tech/topics/haskell.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [modules](<https://devfeed.tech/topics/modules.md>)

Tags: [category-theory](<https://devfeed.tech/tags/category-theory.md>), [haskell](<https://devfeed.tech/tags/haskell.md>), [language](<https://devfeed.tech/tags/language.md>), [lens](<https://devfeed.tech/tags/lens.md>), [mapping](<https://devfeed.tech/tags/mapping.md>), [modules](<https://devfeed.tech/tags/modules.md>), [optics](<https://devfeed.tech/tags/optics.md>), [profunctors](<https://devfeed.tech/tags/profunctors.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [tambara-modules](<https://devfeed.tech/tags/tambara-modules.md>)

### AI overview

This article explains profunctor optics through Tannakian reconstruction. It presents optics as a category, describes lenses and their composition in Haskell, and introduces Tambara modules as a representation that simplifies optic composition.

### Source excerpt

You may think of Tannakian Reconstruction as an example of redundant encoding. It lets you replace a simple hom-set with a much more complex end that is taken over an entire functor category. Why would anyone want to do it? The answer is simple: composition! Morphisms on the left compose according to the rules of [...]

## Tambara Equipment

DevFeed: [Tambara Equipment](<https://devfeed.tech/articles/tambara-equipment-28862.md>)

Original publisher: [Read original article](<https://bartoszmilewski.com/2026/07/11/tambara-equipment/>)

Author: Bartosz Milewski

Published: 2026-07-11T08:13:34Z

Content type: article

Language: en

Sources: [Bartosz Milewski's Programming Cafe](<https://devfeed.tech/sources/bartosz-milewski-s-programming-cafe.md>)

Topics: [modules](<https://devfeed.tech/topics/modules.md>), [Haskell](<https://devfeed.tech/topics/haskell.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [category-theory](<https://devfeed.tech/tags/category-theory.md>), [code](<https://devfeed.tech/tags/code.md>), [double-categories](<https://devfeed.tech/tags/double-categories.md>), [double-category](<https://devfeed.tech/tags/double-category.md>), [haskell](<https://devfeed.tech/tags/haskell.md>), [modules](<https://devfeed.tech/tags/modules.md>), [optics](<https://devfeed.tech/tags/optics.md>), [proarrow-equipment](<https://devfeed.tech/tags/proarrow-equipment.md>), [profunctors](<https://devfeed.tech/tags/profunctors.md>), [structure](<https://devfeed.tech/tags/structure.md>), [tambara-modules](<https://devfeed.tech/tags/tambara-modules.md>), [tannakian-reconstruction](<https://devfeed.tech/tags/tannakian-reconstruction.md>), [theory](<https://devfeed.tech/tags/theory.md>), [transformation](<https://devfeed.tech/tags/transformation.md>)

### AI overview

This article explains Tambara modules through category theory and illustrates the concepts with Haskell code. It discusses their relationship to profunctors, monoidal actions, double categories, proarrow equipment, and Tannakian reconstruction.

### Source excerpt

I was originally attracted to category theory when trying to understand Haskell optics. I was puzzled by the van Laarhoven's functor representations and Kmett's use of Tambara modules. By playing Tetris with the Yoneda lemma I was able to make some progress, attacking more and more esoteric topics. With a group of researcher and students [...]

## Kan Extensions in Double Categories

DevFeed: [Kan Extensions in Double Categories](<https://devfeed.tech/articles/kan-extensions-in-double-categories-28860.md>)

Original publisher: [Read original article](<https://bartoszmilewski.com/2026/06/13/kan-extensions-in-double-categories/>)

Author: Bartosz Milewski

Published: 2026-06-13T12:27:28Z

Content type: article

Language: en

Sources: [Bartosz Milewski's Programming Cafe](<https://devfeed.tech/sources/bartosz-milewski-s-programming-cafe.md>)

Topics: [Haskell](<https://devfeed.tech/topics/haskell.md>), [data type](<https://devfeed.tech/topics/data-type.md>), [implementation](<https://devfeed.tech/topics/implementation.md>)

Tags: [category-theory](<https://devfeed.tech/tags/category-theory.md>), [data-type](<https://devfeed.tech/tags/data-type.md>), [double-category](<https://devfeed.tech/tags/double-category.md>), [function](<https://devfeed.tech/tags/function.md>), [haskell](<https://devfeed.tech/tags/haskell.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [kan-extensions](<https://devfeed.tech/tags/kan-extensions.md>), [profunctor-equipment](<https://devfeed.tech/tags/profunctor-equipment.md>), [profunctors](<https://devfeed.tech/tags/profunctors.md>)

### AI overview

This article generalizes right and left Kan extensions from functors to profunctors in double categories and presents corresponding Haskell representations. It explains the associated universal and factorization properties, including their computational interpretation.

### Source excerpt

Previously: Kan extensions in Haskell. In a double category that is also a proarrow equipment, we have the ability to bend arrows. In particular, in the definition of the counit of the right Kan extension: we can bend the vertical arrow, replacing it with its horizontal conjoint . In a profunctor equipment, this is just [...]

## Tabulation Tribulations

DevFeed: [Tabulation Tribulations](<https://devfeed.tech/articles/tabulation-tribulations-28858.md>)

Original publisher: [Read original article](<https://bartoszmilewski.com/2026/05/23/tabulation-tribulations/>)

Author: Bartosz Milewski

Published: 2026-05-23T16:05:49Z

Content type: article

Language: en

Sources: [Bartosz Milewski's Programming Cafe](<https://devfeed.tech/sources/bartosz-milewski-s-programming-cafe.md>)

Topics: [Graphs](<https://devfeed.tech/topics/graphs.md>)

Tags: [category-theory](<https://devfeed.tech/tags/category-theory.md>), [double-categories](<https://devfeed.tech/tags/double-categories.md>), [graph](<https://devfeed.tech/tags/graph.md>), [mapping](<https://devfeed.tech/tags/mapping.md>), [object](<https://devfeed.tech/tags/object.md>), [pairs](<https://devfeed.tech/tags/pairs.md>), [profunctor-equipment](<https://devfeed.tech/tags/profunctor-equipment.md>), [profunctors](<https://devfeed.tech/tags/profunctors.md>)

### AI overview

This article explains tabulations in double categories by relating them to graphs of functions, relations, and profunctors. It describes the category of elements of a profunctor and introduces tabulation through projections and a universal property, including conditions for morphisms and 2-cells.

### Source excerpt

Previously: Bending, Yanking, and Cartesian Squares in Double Categories. We all know what a graph of a function is: it's a set of pairs , where . Similarly, a graph of a relation is a set of pairs where is related to . A profunctor can be viewed as a proof-relevant relation. So a graph [...]

## Bending, Yanking, and Cartesian Squares in Double Categories

DevFeed: [Bending, Yanking, and Cartesian Squares in Double Categories](<https://devfeed.tech/articles/bending-yanking-and-cartesian-squares-in-double-categories-28857.md>)

Original publisher: [Read original article](<https://bartoszmilewski.com/2026/05/18/bending-yanking-and-cartesian-squares-in-double-categories/>)

Author: Bartosz Milewski

Published: 2026-05-19T06:54:15Z

Content type: article

Language: en

Sources: [Bartosz Milewski's Programming Cafe](<https://devfeed.tech/sources/bartosz-milewski-s-programming-cafe.md>)

Topics: [Category Theory](<https://devfeed.tech/topics/category-theory.md>), [Profunctor Equipment](<https://devfeed.tech/topics/profunctor-equipment.md>), [String Diagrams](<https://devfeed.tech/topics/string-diagrams.md>)

Tags: [category-theory](<https://devfeed.tech/tags/category-theory.md>), [diagram](<https://devfeed.tech/tags/diagram.md>), [double-categories](<https://devfeed.tech/tags/double-categories.md>), [proarrow-equipment](<https://devfeed.tech/tags/proarrow-equipment.md>), [profunctor-equipment](<https://devfeed.tech/tags/profunctor-equipment.md>), [profunctors](<https://devfeed.tech/tags/profunctors.md>), [string-diagrams](<https://devfeed.tech/tags/string-diagrams.md>)

### AI overview

This article explains how string-diagram manipulations in double categories and proarrow equipment support yanking identities and the spider lemma, then introduces Cartesian squares as a universal construction in category theory.

### Source excerpt

Previously: Profunctor Equipment in Haskell. The major advantage of string diagrams is that they provide surprisingly natural language for complex diagram manipulations. The fact that two traditional diagrams are equal can be often described as a permission to bend, yank, or pinch strings in particular ways. They provide visual and often tactile clues to our [...]

## Profunctor Equipment in Haskell

DevFeed: [Profunctor Equipment in Haskell](<https://devfeed.tech/articles/profunctor-equipment-in-haskell-28856.md>)

Original publisher: [Read original article](<https://bartoszmilewski.com/2026/05/16/profunctor-equipment-in-haskell/>)

Author: Bartosz Milewski

Published: 2026-05-16T09:47:40Z

Content type: tutorial

Language: en

Sources: [Bartosz Milewski's Programming Cafe](<https://devfeed.tech/sources/bartosz-milewski-s-programming-cafe.md>)

Topics: [Haskell](<https://devfeed.tech/topics/haskell.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [Code](<https://devfeed.tech/topics/code.md>), [Library](<https://devfeed.tech/topics/library.md>), [trust](<https://devfeed.tech/topics/trust.md>)

Tags: [category-theory](<https://devfeed.tech/tags/category-theory.md>), [code](<https://devfeed.tech/tags/code.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [haskell](<https://devfeed.tech/tags/haskell.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [library](<https://devfeed.tech/tags/library.md>), [profunctor-equipment](<https://devfeed.tech/tags/profunctor-equipment.md>), [profunctors](<https://devfeed.tech/tags/profunctors.md>), [programming](<https://devfeed.tech/tags/programming.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>), [types](<https://devfeed.tech/tags/types.md>)

### AI overview

This article presents a toy Haskell implementation of profunctor equipment. It explains how cells, composition, units, companions, and conjoints can be represented using standard library types, natural transformations, existential types, and profunctor composition, while noting limitations that would require dependent types.

### Source excerpt

Previously: Profunctor Equipment. To make things more palatable for programmers, I decided to provide a toy implementation of some of the equipments in Haskell. The advantage of this encoding is that it can be verified by the compiler, and I still trust the compiler more than I trust the AI. A more adequate implementation would [...]