Определить ModuleName загруженной цели

Мне было интересно, как вы определяете ModuleName файла, который вы только что загрузили в GHC, используя API.

Если вы посмотрите Документацию API, они всегда предполагают, что вы знаете имя модуля, прежде чем загружать файл в.

Я попытался отсортировать граф зависимостей и выбрать последний модуль, но это не всегда возвращает файл, который был загружен.

Ранее я мог изменить исходный код GHC, чтобы сохранить эту информацию в HscEnv,

Было бы неплохо, если бы звонок load вернул бы его, но, безусловно, должен быть способ сделать это уже, так как GHCi знает это, когда загружает файл.

1 ответ

haskell-src-exts пакет имеет функцию parseFile с типом parseFile :: FilePath -> IO (ParseResult Module), Module Тип имеет поле для имени модуля.

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