我正在开发一款纯函数编程的虚拟机,希望能够测试和使用已经存在的各种Haskell模块。该虚拟机的输入基本上是未类型化的 lambda 演算表达式。我想知道从现代 Haskell 模块(例如,使用 MPTC、模式守卫等)中提取这种表达式的好方法。我做了一些研究,似乎没有现成的工具可以做到这一点(如果我错了,那就太好了),但这没关系,我正在寻找一种方法。
GHC Core 似乎过于关注操作层面,特别是因为该虚拟机的一个功能是显著改变求值顺序。是否有一些可访问的中间表示形式更接近 lambda 演算?