# Category Theory

Published articles for Category Theory.

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

## Tannakian reconstruction

DevFeed: [Tannakian reconstruction](<https://devfeed.tech/articles/tannakian-reconstruction-28863.md>)

Original publisher: [Read original article](<https://bartoszmilewski.com/2026/07/14/tannakian-reconstruction/>)

Author: Bartosz Milewski

Published: 2026-07-14T10:51:53Z

Content type: tutorial

Language: en

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

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

Tags: [category-theory](<https://devfeed.tech/tags/category-theory.md>), [fiber-functor](<https://devfeed.tech/tags/fiber-functor.md>), [tannakian-reconstruction](<https://devfeed.tech/tags/tannakian-reconstruction.md>)

### AI overview

An explanatory article introduces Tannakian reconstruction through an analogy of superimposed photographs, then describes how functors, fiber functors, natural transformations, and ends can recover source-category morphisms.

### Source excerpt

Two friends, Alice and Bob, live in the same city, but on the opposite sides of a wide river. Every night, Bob looks at the lights on the other side and tries to guess, which one belongs to Alice. They come up with a clever arrangement: Alice will turn on her lights for 10 minutes [...]

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

## Actegories

DevFeed: [Actegories](<https://devfeed.tech/articles/actegories-28861.md>)

Original publisher: [Read original article](<https://bartoszmilewski.com/2026/06/30/actegories/>)

Author: Bartosz Milewski

Published: 2026-06-30T11:45:46Z

Content type: tutorial

Language: en

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

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

Tags: [actegories](<https://devfeed.tech/tags/actegories.md>), [category-theory](<https://devfeed.tech/tags/category-theory.md>), [class](<https://devfeed.tech/tags/class.md>), [haskell](<https://devfeed.tech/tags/haskell.md>), [lens](<https://devfeed.tech/tags/lens.md>), [optics](<https://devfeed.tech/tags/optics.md>), [programming](<https://devfeed.tech/tags/programming.md>), [types](<https://devfeed.tech/tags/types.md>)

### AI overview

This tutorial introduces actegories, explaining their relationship to monoidal categories and their role in programming optics such as lenses, prisms, and traversals. It develops the concepts through Haskell models, including tensor products, unit objects, constraints, associators, unitors, and categorical actions.

### Source excerpt

Previously: Kan Extensions in Double Categories. In programming, actegories play a central role in optics: lenses, prisms, traversals, etc. To understand actegories, let's start with the definition of a monoidal category. Monoidal Category A monoidal category is a category equipped with a tensor product. A tensor product is a functor . We assume that this [...]

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

## Kan Extensions in Haskell

DevFeed: [Kan Extensions in Haskell](<https://devfeed.tech/articles/kan-extensions-in-haskell-28859.md>)

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

Author: Bartosz Milewski

Published: 2026-06-08T12:31:58Z

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>), [Reflex FRP](<https://devfeed.tech/topics/reflex-frp.md>)

Tags: [building](<https://devfeed.tech/tags/building.md>), [category-theory](<https://devfeed.tech/tags/category-theory.md>), [extensions](<https://devfeed.tech/tags/extensions.md>), [haskell](<https://devfeed.tech/tags/haskell.md>), [kan-extensions](<https://devfeed.tech/tags/kan-extensions.md>), [programming](<https://devfeed.tech/tags/programming.md>), [types](<https://devfeed.tech/tags/types.md>), [universal-arrows](<https://devfeed.tech/tags/universal-arrows.md>)

### AI overview

This article explains Kan extensions in category theory and translates their definitions and constructions into Haskell. It focuses on right Kan extensions, adjunctions, universal arrows, and pointwise constructions.

### Source excerpt

Previously: Tabulation Tribulations. If you think of functor composition as a form of multiplication, Kan extensions are an attempt to construct inverses of this multiplication. But unlike multiplication, composition is not symmetric, so we have extensions that attempt to undo precomposition, and lifts that do the same for postcomposition. Furthermore, there rarely is a single [...]

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

## Category theory

DevFeed: [Category theory](<https://devfeed.tech/articles/category-theory-38635.md>)

Original publisher: [Read original article](<https://krossovochkin.com/posts/2020_04_26_category_theory/>)

Published: 2020-04-26T00:00:00Z

Content type: tutorial

Language: en

Sources: [Vasya Drobushkov](<https://devfeed.tech/sources/vasya-drobushkov.md>)

Topics: [Category Theory](<https://devfeed.tech/topics/category-theory.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [category-theory](<https://devfeed.tech/tags/category-theory.md>), [morphisms](<https://devfeed.tech/tags/morphisms.md>), [object](<https://devfeed.tech/tags/object.md>), [programming](<https://devfeed.tech/tags/programming.md>), [theory](<https://devfeed.tech/tags/theory.md>)

### AI overview

A personal synopsis of category theory covering categories, objects, morphisms, composition, universal constructions, order relations, monoids, terminal and initial objects, products, sums, and semirings. It also connects products and sums to programming concepts such as pairs, Either, and algebraic data types.

### Source excerpt

Source Disclaimer This is short synopsis of great set of lectures. What is written here is by no means true, one should refer to original lectures or some books etc. This is written mostly for myself in case I wanted to revisit the topic in the future. Everything below is not "what it is" but mostly "how I understood that". So, there might be mistakes and so on. Category Category consists of:

## Why Many Business Applications Need Fewer High-Level Abstractions

DevFeed: [Why Many Business Applications Need Fewer High-Level Abstractions](<https://devfeed.tech/articles/abstract-enough-38423.md>)

Original publisher: [Read original article](<https://khmylov.com/2015/10/abstract-enough/>)

Author: Andrew Khmylov

Published: 2015-10-06T00:00:00Z

Content type: opinion

Language: en

Sources: [Despite the odds](<https://devfeed.tech/sources/despite-the-odds.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [business logic](<https://devfeed.tech/topics/business-logic.md>), [CRUD](<https://devfeed.tech/topics/crud.md>), [Development](<https://devfeed.tech/topics/development.md>), [Software](<https://devfeed.tech/topics/software.md>), [Database](<https://devfeed.tech/topics/database.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Category Theory](<https://devfeed.tech/topics/category-theory.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [automation](<https://devfeed.tech/tags/automation.md>), [business-logic](<https://devfeed.tech/tags/business-logic.md>), [category-theory](<https://devfeed.tech/tags/category-theory.md>), [code](<https://devfeed.tech/tags/code.md>), [crud](<https://devfeed.tech/tags/crud.md>), [data](<https://devfeed.tech/tags/data.md>), [development](<https://devfeed.tech/tags/development.md>), [functional](<https://devfeed.tech/tags/functional.md>)

### AI overview

The article argues that many IT products are primarily business automation systems built around stateful data manipulation. It suggests that developers should focus on resource constraints, maintainability, and correctness instead of adding unnecessary high-level abstractions.

### Source excerpt

Programmers tend to think there is something special about them. However, a vast amount of IT jobs out there is mostly about business automation and solving auxiliary tasks, with client software being just a tool to help specialists do their real-world jobs--track the state of component research and development, automate status reporting, control the operating hardware mechanism. The so called "business logic" of your product is probably just a bloated mess on top of the huge state machine. If you ever put some "entities" in the database, then you are probably building a state machine, with the only varying parameter being its size and the number of moving parts. But it seems that building "state machine"-ish entity manipulation applications (CRUD, anyone?) is kind of an already researched area with a long history. Of course every product is different, but what I'm trying to say here is that there is a high chance that you actually don't need that many concepts and high-level abstractions to make your product happen. What's more likely is that you will face three types of challenges: How can I make my data manipulation fit into the resource constraints, like time, storage, memory, latency, etc.? How can I make the product to be easy to change and adapt to the new requirements? I'd say that the task of ensuring that newcomers can easily grab the project's source code base and get familiar with it falls in this category as well, because if the code and architecture is easy to grasp, then there is a high chance that it will be easy to modify as well. How can I achieve the highest possible correctness? I want the product to be stable and have no errors whatsoever. The first point (resource constraints) doesn't favor the high abstractions that much. Another level of indirection is probably going to add up some overhead on top of your existing resource consumption. The second one also doesn't play well. If your codebase is bursting with obscure category theory concepts or

## The Universal Properties of Map, Fold, and Filter

DevFeed: [The Universal Properties of Map, Fold, and Filter](<https://devfeed.tech/articles/the-universal-properties-of-map-fold-and-filter-40331.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2013/09/30/the-universal-properties-of-map-fold-and-filter/>)

Published: 2013-09-30T09:00:53Z

Content type: article

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Category Theory](<https://devfeed.tech/topics/category-theory.md>), [functions](<https://devfeed.tech/topics/functions.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [categories](<https://devfeed.tech/tags/categories.md>), [category-theory](<https://devfeed.tech/tags/category-theory.md>), [foldr](<https://devfeed.tech/tags/foldr.md>), [free-object](<https://devfeed.tech/tags/free-object.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [functions](<https://devfeed.tech/tags/functions.md>), [list](<https://devfeed.tech/tags/list.md>), [monoids](<https://devfeed.tech/tags/monoids.md>), [programming](<https://devfeed.tech/tags/programming.md>), [standard-ml](<https://devfeed.tech/tags/standard-ml.md>), [universal-properties](<https://devfeed.tech/tags/universal-properties.md>)

### AI overview

This article gives category-theoretic characterizations of the functional programming functions map, fold, and filter. It argues that fold has the strongest universal characterization among the three and introduces a generalization related to transformations of standard compound data types.

### Source excerpt

A lot of people who like functional programming often give the reason that the functional style is simply more elegant than the imperative style. When compelled or inspired to explain (as I did in my old post, How I Learned to Love Functional Programming), they often point to the three "higher-order" functions map, fold, and filter, as providing a unifying framework for writing and reasoning about programs. But how unifying are they, really?

## Functoriality in Category Theory: Mappings That Preserve Morphisms

DevFeed: [Functoriality in Category Theory: Mappings That Preserve Morphisms](<https://devfeed.tech/articles/functoriality-40326.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2013/07/14/functoriality/>)

Published: 2013-07-14T10:03:29Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Category Theory](<https://devfeed.tech/topics/category-theory.md>), [Mathematics](<https://devfeed.tech/topics/mathematics.md>), [Math and Logic](<https://devfeed.tech/topics/math-and-logic.md>)

Tags: [categories](<https://devfeed.tech/tags/categories.md>), [category-theory](<https://devfeed.tech/tags/category-theory.md>), [coproducts](<https://devfeed.tech/tags/coproducts.md>), [functor](<https://devfeed.tech/tags/functor.md>), [homology](<https://devfeed.tech/tags/homology.md>), [ml](<https://devfeed.tech/tags/ml.md>), [morphisms](<https://devfeed.tech/tags/morphisms.md>), [universal-properties](<https://devfeed.tech/tags/universal-properties.md>)

### AI overview

This tutorial introduces functoriality in category theory. It explains functors as mappings between categories that assign objects and morphisms while preserving identity morphisms and composition, with homology as an example of a functorial construction.

### Source excerpt

Last time we worked through some basic examples of universal properties, specifically singling out quotients, products, and coproducts. There are many many more universal properties that we will mention as we encounter them, but there is one crucial topic in category theory that we have only hinted at: functoriality. As we've repeatedly stressed, the meat of category theory is in the morphisms. One natural question one might ask is, what notion of morphism is there between categories themselves?

## Universal Properties

DevFeed: [Universal Properties](<https://devfeed.tech/articles/universal-properties-40319.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2013/05/24/universal-properties/>)

Published: 2013-05-24T14:53:25Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Category Theory](<https://devfeed.tech/topics/category-theory.md>), [Mathematics](<https://devfeed.tech/topics/mathematics.md>), [function](<https://devfeed.tech/topics/function.md>), [object](<https://devfeed.tech/topics/object.md>)

Tags: [categories](<https://devfeed.tech/tags/categories.md>), [category-theory](<https://devfeed.tech/tags/category-theory.md>), [coproducts](<https://devfeed.tech/tags/coproducts.md>), [examples](<https://devfeed.tech/tags/examples.md>), [function](<https://devfeed.tech/tags/function.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [ml](<https://devfeed.tech/tags/ml.md>), [morphisms](<https://devfeed.tech/tags/morphisms.md>), [object](<https://devfeed.tech/tags/object.md>), [product](<https://devfeed.tech/tags/product.md>), [programming](<https://devfeed.tech/tags/programming.md>), [quotients](<https://devfeed.tech/tags/quotients.md>), [types](<https://devfeed.tech/tags/types.md>), [universal-properties](<https://devfeed.tech/tags/universal-properties.md>)

### AI overview

This tutorial introduces universal properties in category theory, defining initial, final, and zero objects through unique morphisms. It illustrates the concepts with examples from mathematics and Set, and discusses constructing programs related to these properties.

### Source excerpt

Previously in this series we've seen the definition of a category and a bunch of examples, basic properties of morphisms, and a first look at how to represent categories as types in ML. In this post we'll expand these ideas and introduce the notion of a universal property. We'll see examples from mathematics and write some programs which simultaneously prove certain objects have universal properties and construct the morphisms involved.

## Introducing Categories

DevFeed: [Introducing Categories](<https://devfeed.tech/articles/introducing-categories-40314.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2013/04/24/introducing-categories/>)

Published: 2013-04-24T06:48:01Z

Content type: article

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Category Theory](<https://devfeed.tech/topics/category-theory.md>)

Tags: [categories](<https://devfeed.tech/tags/categories.md>), [category-theory](<https://devfeed.tech/tags/category-theory.md>), [theory](<https://devfeed.tech/tags/theory.md>)

### AI overview

An introductory tutorial defines category theory and explains its purpose as a unified language for organizing mathematical structures across disciplines. It introduces examples and prepares readers for the formal definition of categories.

### Source excerpt

For a list of all the posts on Category Theory, see the Main Content page. It is time for us to formally define what a category is, to see a wealth of examples. In our next post we'll see how the definitions laid out here translate to programming constructs. As we've said in our soft motivational post on categories, the point of category theory is to organize mathematical structures across various disciplines into a unified language.

## An Overview of Category Theory's Purpose in Mathematics and Programming

DevFeed: [An Overview of Category Theory's Purpose in Mathematics and Programming](<https://devfeed.tech/articles/categories-what-s-the-point-40313.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2013/04/16/categories-whats-the-point/>)

Published: 2013-04-16T18:00:09Z

Content type: article

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Category Theory](<https://devfeed.tech/topics/category-theory.md>), [Haskell](<https://devfeed.tech/topics/haskell.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Mathematics](<https://devfeed.tech/topics/mathematics.md>)

Tags: [categories](<https://devfeed.tech/tags/categories.md>), [category-theory](<https://devfeed.tech/tags/category-theory.md>), [functional](<https://devfeed.tech/tags/functional.md>), [haskell](<https://devfeed.tech/tags/haskell.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [theory](<https://devfeed.tech/tags/theory.md>)

### AI overview

This introductory article explains category theory as a way to organize mathematical ideas by shared structure. It uses analogies to programming-language abstractions and discusses why programmers, particularly Haskell and functional-language developers, may be interested in category-theoretic concepts.

### Source excerpt

Perhaps primarily due to the prominence of monads in the Haskell programming language, programmers are often curious about category theory. Proponents of Haskell and other functional languages can put category-theoretic concepts on a pedestal or in a mexican restaurant, and their benefits can seem as mysterious as they are magical. For instance, the most common use of a monad in Haskell is to simulate the mutation of immutable data. Others include suspending and backtracking computations, and even untying tangled rope.

## A Sample of Standard ML, the TreeSort Algorithm, and Monoids

DevFeed: [A Sample of Standard ML, the TreeSort Algorithm, and Monoids](<https://devfeed.tech/articles/a-sample-of-standard-ml-the-treesort-algorithm-and-monoids-40310.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2013/04/07/a-sample-of-standard-ml-and-the-treesort-algorithm/>)

Published: 2013-04-07T21:57:37Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Standard ML](<https://devfeed.tech/topics/standard-ml.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Category Theory](<https://devfeed.tech/topics/category-theory.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Polymorphism](<https://devfeed.tech/topics/polymorphism.md>)

Tags: [algorithms](<https://devfeed.tech/tags/algorithms.md>), [category-theory](<https://devfeed.tech/tags/category-theory.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [ml](<https://devfeed.tech/tags/ml.md>), [monoids](<https://devfeed.tech/tags/monoids.md>), [programming](<https://devfeed.tech/tags/programming.md>), [sorting](<https://devfeed.tech/tags/sorting.md>), [standard-ml](<https://devfeed.tech/tags/standard-ml.md>), [trees](<https://devfeed.tech/tags/trees.md>), [universal-properties](<https://devfeed.tech/tags/universal-properties.md>)

### AI overview

A tutorial introducing Standard ML through functional programming, category theory, and the TreeSort algorithm. It explains why ML is used for manually implementing category-theoretic ideas and highlights parametric polymorphism and type inference.

### Source excerpt

In this post we will assume the reader has a passing familiarity with some of the basic concepts of functional programming (the map, fold, and filter functions). We introduce these topics in our Racket primer, but the average reader will understand the majority of this primer without expertise in functional programming. Follow-ups to this post can be found in the Computational Category Theory section of the Main Content page. Preface: ML for Category Theory A few of my readers have been asking for more posts about functional languages and algorithms written in functional languages.