Wdrażanie tłumacza języka w Haskell

Chcę zaimplementować imperatywny interpreter języka w Haskell (do celów edukacyjnych). Ale trudno jest mi stworzyć odpowiednią architekturę dla mojego tłumacza: jak przechowywać zmienne? Jak mogę zaimplementować zagnieżdżone wywołania funkcji? Jak wdrożyć zmienne zakresy? Jak mogę dodać możliwości debugowania w moim języku? Czy powinienem używać transformatorów monad / monad / innych technik? itp.

Czy ktoś zna dobre artykuły / artykuły / tutoriale / źródła na ten temat?

questionAnswers(2)

yourAnswerToTheQuestion