Yi est un éditeur de texte écrit et extensible en langage Haskell.
Yi est un petit programme exécutable qui compile via le compilateur GHC le code qui constitue le véritable éditeur. Ce petit noyau peut répétitivement
recompiler les extensions.
Cela rend possible d'accélérer le cycle écriture-test bien qu'Yi soit écrit en un langage statiquement typé. L'utilisation de Haskell comme langage d'extension
permet de s'appuyer sur les bibliothèques et outils écrits en haskell. Le but à long terme du projet est qu'Yi devienne l'éditeur de choix pour les programmeurs de haskell comme Emacs l'est pour les programmeurs Lisp.
Les modes d'émulation primaires de Yi sont Vim et emacs. Yi fournit aussi des keybindings pour vi, mg et nano.
On peut aussi écrire des interfaces d'autres éditeurs en haskell.
Références
(en) Don Stewart et Manuel Chakravarty, « Dynamic Applications From the Ground Up », Haskell '05: Proceedings of the ACM SIGPLAN workshop on Haskell workshop, , p. 27–38 (ISBN1-59593-071-X, DOI10.1145/1088348.1088352, lire en ligne [PDF])
(en) Jean-Philippe Bernardy, « Lazy Functional Incremental Parsing », draft, (lire en ligne [PDF])