Использование библиотеки Haskell Time в формате ISO8601

Я использую библиотеку времени Haskell. Я пытаюсь использовать ISO-8601 программы форматирования даты.

В моем коде я могу импортировать модуль Data.Time и использовать его без проблем. Однако, когда я импортирую функции и определения Data.Time.Format.ISO8601, я получаю следующую ошибку: Could not find module.

Я новичок в Haskell и пока не уверен в своей способности понимать зависимости в менеджере пакетов. У меня есть фон, ориентированный на Java.


person MMacphail    schedule 09.08.2018    source источник
comment
Какие установлены пакеты, что печатает для cabal freeze?   -  person Willem Van Onsem    schedule 09.08.2018
comment
Использование заморозки кабалы не возвращает никаких зависимостей... Я думаю, файл my-project.cabal настроен неправильно? Я поместил библиотеку времени в часть: executable my-project-exe в разделе build-depends.   -  person MMacphail    schedule 09.08.2018
comment
Просто для ясности при запуске cabal freeze печатается только Resolving dependencies... и ничего больше   -  person MMacphail    schedule 09.08.2018
comment
time включает ISO8601 в версии 1.9., поэтому вам нужно выяснить, соответствует ли номер вашей версии.   -  person trevor cook    schedule 09.08.2018


Ответы (1)


Наконец-то мне удалось понять, что происходит, благодаря комментарию Тревора Кука.

Stack по умолчанию извлекает зависимости из Stackage, который не содержит последней версии пакета времени. Поэтому мне нужно было указать версию, чтобы заставить стек использовать Hackage вместо Stackage для разрешения моего временного пакета, добавив дополнительный уровень в мой файл stack.yaml:

extra-deps:
- time-1.9.2

После запуска stack build компилятор смог найти модуль формата даты ISO 8601.

person MMacphail    schedule 09.08.2018
comment
stack по умолчанию извлекает зависимости из Stackage - person user2297560; 09.08.2018