Как перезагрузить проект после добавления зависимостей? - PullRequest
0 голосов
/ 22 февраля 2019

Во время разработки я добавил библиотеку к package.yaml и GHCi уже запущен.

Например, я добавил библиотеку bytestring:

executables:
  playground-exe:
    main:                Main.hs
    source-dirs:         app
    ghc-options:
    - -threaded
    - -rtsopts
    - -with-rtsopts=-N
    dependencies:
    - playground
    - text
    - bytestring

Поскольку я использую его в файле с именем Families.hs, и он содержит следующий код:

{-# LANGUAGE  TypeFamilies, OverloadedStrings #-}

module Families where

import Data.Word (Word8)
import qualified Data.ByteString as BS 

Когда я пытаюсь загрузить файл, он жалуется:

:l ./src/Families.hs
[1 of 1] Compiling Families         ( src/Families.hs, interpreted )

src/Families.hs:6:1: error:
    Could not load module ‘Data.ByteString’
    It is a member of the hidden package ‘bytestring-0.10.8.2’.
    You can run ‘:set -package bytestring’ to expose it.
    (Note: this unloads all the modules in the current scope.)
    Use -v to see a list of the files searched for.
  |
6 | import qualified Data.ByteString as BS
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Failed, no modules loaded.

Вопрос в том, как перезагрузить весь проект в GHCi и разрешить использование библиотеки bytestring.

ОБНОВЛЕНИЕ
Я также пытался с :reload и получил

:reload
[1 of 1] Compiling Families         ( src/Families.hs, interpreted )

src/Families.hs:6:1: error:
    Could not load module ‘Data.ByteString’
    It is a member of the hidden package ‘bytestring-0.10.8.2’.
    You can run ‘:set -package bytestring’ to expose it.
    (Note: this unloads all the modules in the current scope.)
    Use -v to see a list of the files searched for.
  |
6 | import qualified Data.ByteString as BS
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Failed, no modules loaded.

1 Ответ

0 голосов
/ 22 февраля 2019

Я вижу, что вы используете Spacemacs вместе с intero.В этом случае вы можете перезапустить весь процесс взаимодействия, набрав M-x intero-restart RET или M-RET i r, чтобы перезагрузить все зависимости стека.

Другой способ сделать это - навести курсор на ошибку импорта и ввести * 1006.* чтобы intero автоматически решил проблему.

...