Implementan equipamiento profunctor en Haskell como verificación práctica

Fuentes: Profunctor Equipment in Haskell
Implementan equipamiento profunctor en Haskell como verificación práctica
Imagen generada con IA

El artículo presenta una implementación práctica en Haskell del concepto matemático de 'equipamiento profunctor' (profunctor equipment), una estructura proveniente de la teoría de categorías Higher Order Topos Theory. El autor, Bartosz Milewski, decide usar Haskell como 'juguete' para verificar compiladamente estos conceptos abstractos, en lugar de confiar en asistentes de IA. La implementación se basa en la categoría de Haskell (tipos y funciones), donde los functores standard representan las 1-celdas verticales y los profunctores las 1-celdas horizontales. Las 2-celdas se implementan como transformaciones naturales definidas mediante 'forall' como cuantificador universal. El artículo detalla las operaciones de composición horizontal y vertical de celdas, usando para ello la composición de functores (Compose) y la composición de profunctores (Procompose). Esta última se implementa como un tipo existencial, representando un coend en términos de teoría de categorías. Se definen las unidades horizontal y vertical, así como las células companion y conjoint, que corresponden a los tipos Costar y Star de la librería. El artículo conclude indicando que construcciones más avanzadas requerirían categorías internas en Haskell y tipos dependientes, lo cual excede el alcance de este ejemplo toy. El código fuente está disponible en un repositorio Forgejo.