Стратегия удаления сахара в Haskell

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

GHC Core кажется слишком сфокусированным на операциях, тем более что одна из вещей, которые делает виртуальная машина, - это значительно изменять порядок оценки. Есть ли какие-либо доступные промежуточные представления, которые более точно соответствуют лямбда-исчислению?

10
задан luqui 29 December 2010 в 02:24
поделиться