Как напечатать тип выражения в Фреге

В интерактивную оболочку и (онлайн) REPL могу войти

:type 1

выяснить тип выражения "1". Есть ли какая-либо функция, которую я могу использовать из кода для достижения того же эффекта?

1 ответ

Решение

В это время нет простого способа сделать это.

Однако сам REPL написан на Фреге, так что это, безусловно, возможно.

"Хитрость" заключается в создании полной программы, например,

module Foo where { x = 1 }

и запустить его через первые проходы компилятора, вплоть до прохода проверки типа. После этого можно запросить таблицу символов для символа верхнего уровня x и его тип.

Другие вопросы по тегам