Haskell で命令型言語インタープリターを実装したい (教育目的で)。しかし、インタープリターに適したアーキテクチャを作成するのは難しいです: 変数をどのように保存すればよいですか? ネストされた関数呼び出しを実装するにはどうすればよいですか? 変数のスコープをどのように実装すればよいですか? 自分の言語にデバッグ機能を追加するにはどうすればよいですか? モナド/モナドトランスフォーマー/その他のテクニックを使用する必要がありますか? 等
この件に関する優れた記事/論文/チュートリアル/ソースを知っている人はいますか?