Я не уверен, что моя проблема здесь. У меня есть трио модулей A.hs, B.hs и C.hs. Все они расположены в C:\..path...\folder
и модули В и С, как импорт из А.Загрузка модулей Haskell, имеющих зависимости
То есть, как модули B и C содержат линию import A
я могу :l C:\..path..\folder\A.hs
в gchi и играть с его содержанием; Однако, GHCi дает следующее сообщение об ошибке при попытке :l C:\..path..\folder\B.hs
или :l C:\..path..\folder\C.hs
Could not find module `A'
Use -v to see a list of the files searched for.
Failed, modules loaded: none.
Что я нахожу странным, потому что у меня не было никаких проблем B.hs к b.exe и запуску исполняемого файла. Как я могу скомпилировать и запустить модуль, который я не могу загрузить в ghci? Или, почему импорт будет успешным во время компиляции, но не будет загружаться; особенно когда сам импортируемый модуль сам по себе загружен?
У меня была аналогичная проблема. Если вы загружаете модули при запуске ('ghci A.hs B.hs'), это дает ошибку? –
Хм, поэтому я попробовал, и он работает с некоторыми оговорками. Если я запустил ghci в предложенном вами порядке, то ghci заявит, что оба модуля – Tshimanga
Хм, он работает с некоторыми оговорками: Если я запустил 'ghci A.hs B.hs', то ghci заявляет, что оба модуля были загружены, но затем, когда я фактически начинаю пытаться взаимодействовать с содержимым, доступны только функции и типы из A.hs. Я получаю ошибку не в области видимости для чего-либо в B.hs. Если я обмениваюсь аргументами (запускаюсь вместо этого как 'ghci B.hs A.hs'), я могу играть с содержимым обоих. Эта особенность интересна сама по себе. Тем не менее, вопрос о понимании того, почему исходный подход терпит неудачу, все же остается; но, этот обход ценится. Спасибо @WolfeMacfarlane – Tshimanga