Определить ModuleName загруженной цели
Мне было интересно, как вы определяете ModuleName
файла, который вы только что загрузили в GHC, используя API.
Если вы посмотрите Документацию API, они всегда предполагают, что вы знаете имя модуля, прежде чем загружать файл в.
Я попытался отсортировать граф зависимостей и выбрать последний модуль, но это не всегда возвращает файл, который был загружен.
Ранее я мог изменить исходный код GHC, чтобы сохранить эту информацию в HscEnv
,
Было бы неплохо, если бы звонок load
вернул бы его, но, безусловно, должен быть способ сделать это уже, так как GHCi знает это, когда загружает файл.
1 ответ
haskell-src-exts
пакет имеет функцию parseFile с типом parseFile :: FilePath -> IO (ParseResult Module)
, Module
Тип имеет поле для имени модуля.