Почему я могу загрузить модуль в GHCi, а Atom не может его найти?

Я использую Haskell со стеком и Atom в Windows 10. Иногда мне нравится просто писать отдельный файл .hs, чтобы поиграться с разными вещами. Когда я это делаю, я предпочитаю взаимодействовать с ним с помощью GHCi.

Обычно я запускаю его из Git Bash:

$ stack ghci --color never

Отсюда я могу добавить модули:

Prelude> :m +Data.Vector.Unboxed
Prelude Data.Vector.Unboxed>

Однако в Atom у меня проблемы с этим конкретным пакетом:

  1. Открытый атом
  2. Создайте новый файл .hs
  3. Добавьте в него следующий контент и нажмите Сохранить:

Содержимое файла:

module Ploeh where

import qualified Data.Vector.Unboxed as V

Когда я сохраняю файл, я получаю это сообщение об ошибке в Atom:

Failed to load interface for `Data.Vector.Unboxed'
Use -v to see a list of the files searched for.

Если я удалю импорт Data.Vector.Unboxed, сообщение об ошибке исчезнет.

Эта проблема возникает конкретно с Data.Vector.Unboxed. Другие модули либо постоянно присутствуют как в GHCi, так и в Atom, либо постоянно отсутствуют в обеих средах, но особенно этот модуль ведет себя непоследовательно.

Я предполагаю, что Atom использует другой движок, отличный от «глобальной» конфигурации, используемой stack ghci, но если да, то где он, и могу ли я его настроить/обновить? Почему разница?


Я использую следующие пакеты Atom:

  • autocomplete-haskell 1.0.1
  • haskell-ghc-mod 2.2.2
  • ide-haskell 2.2.2
  • ide-haskell-cabal 2.1.0
  • язык-хаскель 1.17.2

Сам Атом версии 1.23.2 x64.

$ stack --version
Version 1.6.3, Git revision b27e629b8c4ce369e3b8273f04db193b060000db (5454 commits) x86_64 hpack-0.20.0

Я считаю, что все в курсе.

Я прочитал https://atom-haskell.github.io/core-packages/haskell-ghc-mod/#using-with-stack и другие части документации, чтобы посмотреть, смогу ли я найти полезную информацию, но мне не удалось найти кое-что, чтобы просветить меня.


person Mark Seemann    schedule 03.01.2018    source источник
comment
Вы должны создать файл cabal (или файл yaml, если используете hpack), чтобы перечислить зависимости. Вы можете быстро начать работу следующим образом: haskell-lang.org/get-started   -  person Sibi    schedule 03.01.2018
comment
@Sibi Я регулярно играю с файлами .hs в Atom в течение года или более, и всякий раз, когда я придерживался «базовых» модулей, я прекрасно справлялся без файла .cabal или .yaml. Я знаю, как создать «правильный» проект стека и добавить зависимости. Этот вопрос конкретно касается специального исследовательского программирования.   -  person Mark Seemann    schedule 03.01.2018
comment
Ах я вижу. Вы установили их как глобальные зависимости. К сожалению, я не использую атом и не могу помочь. В качестве проверки вы можете увидеть, есть ли у stack exec ghc-pkg list ваша зависимость.   -  person Sibi    schedule 03.01.2018
comment
@Sibi Спасибо за внимание к вопросу. Я понимаю, что вы не используете Atom, поэтому, вероятно, вы не можете помочь, но я оставлю этот ответ для других: vector-0.12.0.1 включен в список, созданный stack exec ghc-pkg list, что, похоже, согласуется с тем фактом, что stack ghci может загрузить модуль; это Атом не может его найти.   -  person Mark Seemann    schedule 03.01.2018
comment
вы нашли ответ на эту проблему? У меня эта проблема даже с Data.Vector   -  person matt    schedule 08.04.2018
comment
@matthias Нет, я бы с радостью опубликовал ответ на свой вопрос, если бы мне удалось его решить. В настоящее время я отказался от Atom в пользу VS Code для разработки на Haskell, но со своим собственным набором проблем.   -  person Mark Seemann    schedule 08.04.2018