Фейсбук отдал в опенсорс любопытную утилиту для рефакторинга кода на хаскеле — Retrie (да, я тоже с первого раза прочел неправильно):
https://engineering.fb.com/open-source/retrie
TL;DR: эта утилита умеет делать рефакторинг, используя правила, аналогичные RULES-прагмам (или использовать их напрямую), а также использовать информацию о переписывании типов — скажем, заменить в аргументах функции строковый тип на enum. Ну и как вишенка на торте — правила рефакторинга можно засриптовать с помощью API Retrie.
Сам репозиторий с проектом: https://github.com/facebookincubator/retrie
Post #677
4.05K