Как использовать UTCTime в Yesod без ошибок скрытого модуля?

Я создаю простой веб-сайт, используя yesod.

Он работал, пока я не добавил поле типа UTCTime в мою модель базы данных.

Сначала у меня появилась ошибка, предполагающая, что я добавляю "time-1.2.0.3" в свой файл cabal, поэтому я сделал, и теперь я получаю такую ​​же ошибку без предложения:

Model.hs:6:8:
    Could not find module `Data.Time.Clock.UTC':
      it is a hidden module in the package `time-1.2.0.3'
      Use -v to see a list of the files searched for.

Командная строка ghc, генерируемая cabal:

"C:\Program Files (x86)\Haskell Platform\2011.2.0.1\bin\ghc.exe" --make -o dist\build\lpi\lpi.exe -hide-all-packages -fbuilding-cabal-package -package-conf dist\package.conf.inplace -i -idist\build\lpi\lpi-tmp -i. -idist\build\autogen -Idist\build\autogen -Idist\build\lpi\lpi-tmp -optP-DPRODUCTION -optP-include -optPdist\build\autogen\cabal_macros.h -odir dist\build\lpi\lpi-tmp -hidir dist\build\lpi\lpi-tmp -stubdir dist\build\lpi\lpi-tmp -package-id base-4.3.1.0-f520cd232cc386346843c4a12b63f44b -package-id bytestring-0.9.1.10-cd85f14e02463c02ba4c77d7adcdb54f -package-id clientsession-0.7.3.6-70ebb09e2b4c14267f1463cef3c932ea -package-id hamlet-0.10.5-1bacb5fe791e5cc9e28c8cf9f07c06e2 -package-id hjsmin-0.0.14-a1d374204877c150b681896452f205f4 -package-id mime-mail-0.4.1.0-05d76f10c6f18f7178113a6d760f371a -package-id monad-control-0.3.1-092d8fe82727181557b850f795f847bc -package-id persistent-0.6.4.3-6e59b956a206ce4f4a9296367507c2b8 -package-id persistent-sqlite-0.6.2.1-d32462e51baa09b53b6fd83dae922fc7 -package-id shakespeare-css-0.10.4-f8e17e4528d3a37edee74b13441720de -package-id shakespeare-js-0.10.3-dfec6b68f60671528332da06c9799659 -package-id shakespeare-text-0.10.3-a0ae9b85c3588ff2572080a6d1cdd4c3 -package-id template-haskell-2.5.0.0-7d9b1443ac5ab69e5ed705a487990deb -package-id text-0.11.1.9-a75bb47eca7b1c98d59b7697de77ca4d -package-id time-1.2.0.3-74ef6ac31cee9aec02b036978af002d2 -package-id yesod-0.9.3.4-6339564f13b46afd787d750cf9daa3bf -package-id yesod-auth-0.7.8-94a2849a33bb6f6d4c0e15615ef22bea -package-id yesod-core-0.9.3.6-a70073f17a6f050226a91a97c305403d -package-id yesod-default-0.4.1-1f30d8d893952d0661328b681d9ce291 -package-id yesod-form-0.3.4-a84ba844c230f9847bca7c0056375179 -package-id yesod-static-0.3.2-c82f332e85e2c9ba709375b8a14040a1 -O -Wall -threaded -O2 -XHaskell98 -XTemplateHaskell -XQuasiQuotes -XOverloadedStrings -XNoImplicitPrelude -XCPP -XMultiParamTypeClasses -XTypeFamilies -XGADTs -XGeneralizedNewtypeDeriving -XFlexibleContexts .\main.hs

поэтому время 1.0.2.3 определенно ссылается.

Все пакеты были загружены за последние 24 часа, поэтому они должны быть в значительной степени актуальными.

Как я могу отобразить Data.Time.Clock.UTC?

Ответ 1

Недавно я получил ту же ошибку, что и ответ был

import Data.Time

вместо

import Data.Time.Clock.UTC

так как первый модуль повторно экспортирует скрытый модуль.

Ответ 2

Звучит для меня как вариант адского адского заговора. Если вы запустите ghc-pkg list time, я предполагаю, что вы увидите несколько версий времени. Возможно, ваше приложение использует более новую версию, чем базовые библиотеки.

В своем файле cabal попытайтесь использовать точно такую ​​же версию времени, как указано в сообщении об ошибке, и посмотрите, разрешает ли она это.