Profunctor Optics: Categorical Foundations with Bartosz Milewski

Added:

Optic Setup
Natural Transforms
Yoneda Lemma
Functor Category
Profunctor Yoneda
Adjunctions
Tambura Modules
Optic Equivalence

Optic Setup

0:00
Playing Section
  • 1

    Introduces profunctor optics, lens, and prism definitions in Haskell.

  • 2

    Explains profunctors as generalized functors over two types.

  • 3

    Highlights function composition for building complex optics.

Basic Category Theory: Familiarity with categories, functors, bifunctors, and natural transformations.
The Yoneda Lemma: Understanding how objects can be represented through natural transformations and hom-functors.
Functional Programming Optics: Conceptual understanding of traditional concrete optics like Lenses (get/set) and Prisms.
Profunctors: Understanding of profunctors as functors that are contravariant in their first argument and covariant in their second.
Tambara Modules: Deeper mathematical analysis of how monoidal actions classify and unify different families of optics.
Practical Profunctor Libraries: Implementing and utilizing profunctor-based optic libraries in functional languages like Haskell or PureScript.
Exotic and Generalized Optics: Exploring advanced structures like Traversals, Grates, and Glass optics through categorical frameworks.
Actegories and Monoidal Categories: Studying the abstract algebraic structures that govern the actions of categories on other categories in advanced domain modeling.
14.8K views359likes45:34@LambdaWorldOriginal Release: 2017-11-06

Profunctor optics provide a unified categorical framework for representing lenses and prisms by leveraging the Yoneda lemma and Tambara modules; lenses are characterized by existential quantification over a Cartesian product (splitting data into focus and environment), while prisms use co-product (sum types), and both can be derived from profunctors satisfying specific constraints (strong for lenses, choice for prisms) through systematic application of categorical principles.