Я разрабатываю виртуальную машину для чисто функциональных программ, и я хотел бы иметь возможность тестировать и использовать большое количество доступных модулей Haskell. VM принимает в качестве входных существенно термины в нетипизированном лямбда-исчислении. Мне интересно, что было бы хорошим способом извлечь такое представление из современных модулей Haskell (например, с MPTC, защитой шаблонов и т.д.). Я сделал небольшое исследование и, похоже, не инструмент, который делает это уже (я был бы рад ошибиться), и все в порядке. Я ищу подход.
Ядро GHC кажется слишком оперативным, особенно потому, что одна из вещей, которую делает VM, - это значительно изменить оценочный порядок. Имеются ли какие-либо доступные промежуточные представления, более близкие к лямбда-исчислению?