Тут нужен бы еще один доклад. Начиная со Snobol, Refal и Prolog и заканчивая Mathematica, Stratego, Erlang, Pure, PLT Redex(Racket) и прочими. Мне кажется, особенно Вас могут заинтересовать работы по переносу мощных динамических систем переписывания в тот же Haskell. За последние годы было несколько подобных попыток перенести Stratego в Haskell, не слишком удачных. Но вот совсем свежая работа, на мой взгляд, очень любопытная, поскольку они абстрагируют само понятие терма:
https://svenkeidel.de/papers/program-trans-analysis.pdf