Eu tenho aprendido alguns pedaços da teoria das categorias. Certamente é uma maneira diferente de ver as coisas. (Resumo muito rudimentar para quem ainda não a viu: a teoria das categorias fornece maneiras de expressar todos os tipos de comportamentos matemáticos apenas em termos de relações funcionais entre objetos. Por exemplo, coisas como o produto cartesiano de dois conjuntos são definidas completamente em termos de como outras funções se comportam com ele, não em termos de quais elementos são membros do conjunto.)
Tenho um entendimento vago de que a teoria das categorias é útil no lado das linguagens de programação / lógica (a "Teoria B") e estou imaginando quanto os algoritmos e a complexidade ("Teoria A") poderiam se beneficiar. Pode me ajudar a decolar, se eu conhecer algumas aplicações sólidas da teoria das categorias na Teoria B. (Eu já estou implicitamente assumindo que não há aplicações na Teoria A encontradas até agora, mas se você tiver algumas delas, isso é até melhor para mim!)
Por "aplicação sólida", quero dizer:
(1) A aplicação depende tão fortemente da teoria das categorias que é muito difícil de obter sem usar o maquinário.
(2) O aplicativo invoca pelo menos um teorema não trivial da teoria das categorias (por exemplo, o lema de Yoneda).
Pode ser que (1) implique (2), mas quero garantir que essas sejam aplicações "reais".
Enquanto eu tenho alguns antecedentes da "Teoria B", já faz um tempo, portanto, qualquer desconexão seria muito apreciada.
(Dependendo do tipo de resposta que recebo, posso transformar essa pergunta em wiki da comunidade mais tarde. Mas quero realmente boas aplicações com boas explicações, por isso parece uma pena não recompensar o (s) respondedor (es) com alguma coisa.)