Невозможно добавить дополнительные функции в проект стека

Я пытаюсь настроить проект Haskell со стеком. Я создал проект: stack new project1 и добавил предложенную зависимость (acme-missile), просто чтобы посмотреть, как это работает.

extra-deps:
- acme-missiles-0.3

Но когда я пытаюсь вызвать launchMissile в Main, это не сработает. я получил

Error:(3, 1)     Could not find module ‘Acme.Missiles’
    Use -v to see a list of the files searched for.
  |
3 | import Acme.Missiles
  | ^^^^^^^^^^^^^^^^^^^^

В чем проблема? Что мне не хватает?

ИЗМЕНИТЬ

Когда я запускаю stack solver, я получаю это:

Using configuration file: stack.yaml
Using cabal packages:
- ./


The following changes will be made to stack.yaml:
* Dependencies to be deleted
    extra-deps:
    - acme-missiles-0.3

To automatically update stack.yaml, rerun with '--update-config'

Разве это не странно? Как будто он думает, что моя зависимость не нужна?


person godzsa    schedule 14.01.2018    source источник
comment
Компилируется ли код при запуске stack build?   -  person Mark Seemann    schedule 14.01.2018
comment
@MarkSeemann нет. Я получаю сообщение об ошибке, которое я включил, когда запускаю сборку стека   -  person godzsa    schedule 14.01.2018
comment
До этого ошибок не было?   -  person Mark Seemann    schedule 14.01.2018
comment
@MarkSeemann нет   -  person godzsa    schedule 14.01.2018


Ответы (1)


Вам также нужно будет добавить зависимость к project1.cabal:

build-depends:
    base >=4.7 && <5
  , project1
  , acme-missiles

В качестве альтернативы, в более новых версиях стека вместо этого следует использовать package.yaml:

dependencies:
- base >= 4.7 && < 5
- acme-missiles

Я не могу сказать, что хорошо разбираюсь в том, как это работает, но, если я правильно понимаю, основной файл, в который вы должны добавить зависимости, находится в файле .cabal или package.yaml. Поле extra-deps в stack.yaml — это то место, где вы можете указать, есть ли у вас зависимости, которые отличаются от LTS, которые вы используете в настоящее время.

person Mark Seemann    schedule 14.01.2018
comment
Спасибо, это решило мою проблему. Если вы используете более новый стек, вам не следует изменять файл .cabal вручную, стек его генерирует, но необходимо добавить его в зависимости :) - person godzsa; 14.01.2018