Il y a eu un certain nombre de développements concernant l'utilisation des monades dans la théorie du calcul depuis les travaux d'Eugenio Moggi. Je ne suis pas en mesure de donner un compte rendu complet, mais voici quelques points que je connais, d'autres peuvent y répondre avec leurs réponses.
Exemples spécifiques de monades
Vous n'avez pas à étudier tout le temps la théorie super-générale. Il existe des exemples de monades très intéressantes et suffisamment compliquées pour remplir une thèse de premier cycle.
J'aime beaucoup le blog de Dan Piponi où il donne des exemples étonnants de la façon dont les monades peuvent être utilisées pour mélanger la programmation fonctionnelle et les mathématiques. Recherchez son travail sur les nœuds et les tresses à travers des monades, par exemple.
Un autre exemple spécifique de mondes à étudier a été donné par Martin Escardo et Paulo Oliva dans le contexte des fonctions de sélection, voir leurs fonctions de sélection, la récursion de la barre et l'induction en arrière , ou peut-être pour vous intéresser, lisez d'abord What Sequential Games, le Tychonoff Theorem et le Double-Negation Shift ont en commun (les fichiers Haskell et Agda associés ici ).
Contexte mathématique
Les monades proviennent de la théorie des catégories et sont beaucoup plus anciennes que Eugenio Moggi. Vous pouvez étudier la théorie de base si vous avez une inclinaison mathématique. Par exemple, vous pourriez attaquer le théorème de monadicité de Beck . Un informaticien théorique ne sait jamais trop de mathématiques.
Variations sur un thème
Vous pourriez regarder quelque chose qui n'est pas strictement monade.
Par exemple, Connor McBride et Ross Paterson's Idioms: la programmation applicative avec effets montre comment on peut généraliser des monades à quelque chose qui est pratiquement pertinent et perspicace.
Ou vous pouvez voir comment les comonades sont utilisées pour modéliser les effets de calcul. Quelqu'un devrait suggérer quelques références pour ce sujet, mais un bon début pourrait être les diapositives de David Overtone .
Théorie des types modaux
Dans la théorie des types d'homotopie, ainsi que dans la théorie des types en général, les monades apparaissent sous la forme d' une théorie de type modale . Récemment, la théorie des types modaux a été considérée dans la théorie des types d'homotopie parce que les opérateurs de troncature sont des exemples d'opérateurs modaux. Et puis il y a la théorie du type homotopique cohésive dans laquelle les opérateurs modaux (qui sont des monades) jouent un rôle essentiel.
Effets algébriques et gestionnaires
[Avertissement: souffler partiellement ma propre corne ici.]
Il y a quelque temps, Gordon Plotkin et John Power ont observé que de nombreux effets de calcul ne sont pas simplement des monades, mais des monades spéciales issues de théories algébriques. Cela a conduit à un tout nouveau traitement des effets de calcul appelés effets algébriques . Plus tard, Gordon Plotkin et Matija Pretnar ont introduit les gestionnaires et, avec les effets algébriques, ils forment une très belle théorie des effets de calcul. Un avantage de cette approche est que les théories algébriques peuvent être facilement combinées, contrairement aux monades.
Vous pourriez étudier comment les effets algébriques se rapportent exactement aux monades. Vous pouvez voir comment les gens ont implémenté des effets algébriques et des gestionnaires, par exemple dans le langage Eff ou dans Haskell en tant que bibliothèque . Il s'agit de recherches plus ou moins actuelles.