He estado aprendiendo algunas partes de la teoría de categorías. Ciertamente es una forma diferente de ver las cosas. (Resumen muy aproximado para aquellos que no lo han visto: la teoría de categorías ofrece formas de expresar todo tipo de comportamiento matemático únicamente en términos de relaciones funcionales entre objetos. Por ejemplo, cosas como el producto cartesiano de dos conjuntos se definen completamente en términos de cómo se comportan otras funciones con él, no en términos de qué elementos son miembros del conjunto).
Tengo una vaga comprensión de que la teoría de categorías es útil en el lado de los lenguajes de programación / lógica (la "Teoría B"), y me pregunto cuánto podrían beneficiarse los algoritmos y la complejidad ("Teoría A"). Sin embargo, podría ayudarme a despegar si conozco algunas aplicaciones sólidas de la teoría de categorías en la Teoría B. (Ya estoy asumiendo implícitamente que no se han encontrado aplicaciones en la Teoría A hasta ahora, pero si tiene algunas de esas, eso es incluso ¡mejor para mi!)
Por "aplicación sólida", quiero decir:
(1) La aplicación depende tanto de la teoría de categoría que es muy difícil de lograr sin usar la maquinaria.
(2) La aplicación invoca al menos un teorema no trivial de la teoría de categorías (por ejemplo, el lema de Yoneda).
Bien podría ser que (1) implica (2), pero quiero asegurarme de que estas son aplicaciones "reales".
Si bien tengo algunos antecedentes de "Teoría B", ha pasado un tiempo, por lo que cualquier desmitificación sería muy apreciada.
(Dependiendo del tipo de respuestas que obtenga, podría convertir esta pregunta en un wiki comunitario más tarde. Pero realmente quiero buenas aplicaciones con buenas explicaciones, por lo que parece una pena no recompensar a los que responden con algo).