http://fprog.ru/2009/issue3/dmitry-astapov-alexey-shchepin-building-google-wa...
Хочется то же, но на Хаскель.
1. Хаскель или примочка к нему позволяют иметь доступ хотя бы на чтение к AST?
2. Альтернативно мы можем определить какой-то параметризованный тип данных, который бы например сумму своих двух значений не вычислял, а отдавал бы выражение (надеюсь, идея понятна):
a + b = AST_Node_Plus a b
вопрос в том, обломится ли такой подход — ведь перегружать надо ВСЕ, в том числе так сказать «функцию паттерн матчинга» и «функцию определения функций».