# 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 [...]