[Esta segunda resposta apresenta um esboço de como pode ser uma "Teoria da categoria 2.0", que lida corretamente com funções de ordem superior.]
Já sabemos há muito tempo como lidar com funções de ordem superior no raciocínio sobre elas.
Quando uma estrutura algébrica possui operações de ordem superior, os homomorfismos não funcionam. Em vez disso, devemos usar relações lógicas . Em outras palavras, devemos passar de " funções preservando estrutura" para " relações preservando estrutura".
Para falar sobre transformações "uniformes" ou "dadas simultaneamente" em tipos de ordem superior, a naturalidade não funciona. Devemos usar a parametridade relacional . Em outras palavras, devemos passar de "famílias preservando todos os morfismos " para "famílias preservando todas as relações lógicas ".
→
Uma rápida introdução a essas questões está na seção de Peter O'Hearn sobre "Parametricidade relacional" em domínios e semântica denotacional: história, realizações e problemas em aberto (CiteSeerX) .
Também devo acrescentar que o raciocínio sobre o estado é onde as funções de ordem superior aparecem com destaque. Os teóricos dos autômatos foram os primeiros a reconhecer que os homomorfismos não funcionam corretamente, em um artigo histórico chamado Produtos de Autômatos e o Problema da Cobertura . Eles usaram termos como "homomorfismos fracos" e "relações de cobertura" para se referir a relações lógicas. No devido tempo, termos como "simulação" e "bisimulação" foram usados para se referir a eles. Artigo de pesquisa de Davide Sangiorgi: Sobre as origens da bisimulação e coindução abrange toda essa história inicial e muito mais.
A necessidade de raciocínio relacional surge repetidamente no raciocínio sobre o estado, em particular na programação imperativa . Muito poucas pessoas percebem que o humilde ponto e vírgula é uma operação de ordem superior. Portanto, você não pode decolar pensando em programas imperativos sem saber como lidar com funções de ordem superior. Continuamos ignorando as questões de estado e programação imperativa na crença equivocada de que a matemática tem todas as respostas. Portanto, se os matemáticos não entendem o estado, não deve ser bom! Nada poderia estar mais longe da verdade. O estado está no coração da Ciência da Computação. Avançaremos a ciência em geral, mostrando às pessoas como lidar com o estado!