Ошибка сборки при добавлении persistent-mongoDB-2.9.0 в проект стека - PullRequest
0 голосов
/ 07 ноября 2019

Моя система и среда:

ОС:

ProductName:    Mac OS X
ProductVersion: 10.14.6
BuildVersion:   18G95

Стек:

Version 2.1.3, Git revision 0fa51b9925decd937e4a993ad90cb686f88fa282 (7739 commits) x86_64 hpack-0.31.2

GHC:

The Glorious Glasgow Haskell Compilation System, version 8.6.5

Я добавилСледующие зависимости для моего package.yaml:

executables:
  example-app-exe:
    main:                Main.hs
    source-dirs:         app
    ghc-options:
    - -threaded
    - -rtsopts
    - -with-rtsopts=-N
    dependencies:
    - example-app
    - yesod
    - persistent >= 2.9 && < 3.0
    - persistent-mongoDB >= 2.9 && < 3.0

stack build приводят меня к следующим ошибкам:

persistent-mongoDB> configure
persistent-mongoDB> Configuring persistent-mongoDB-2.9.0...
persistent-mongoDB> Warning: Packages using 'cabal-version: >= 1.10' must specify the
persistent-mongoDB> 'default-language' field for each component (e.g. Haskell98 or Haskell2010).
persistent-mongoDB> If a component uses different languages in different modules then list the
persistent-mongoDB> other ones in the 'other-languages' field.
persistent-mongoDB> build
persistent-mongoDB> Preprocessing library for persistent-mongoDB-2.9.0..
persistent-mongoDB> Building library for persistent-mongoDB-2.9.0..
persistent-mongoDB> [1 of 1] Compiling Database.Persist.MongoDB
persistent-mongoDB> 
persistent-mongoDB> /private/var/folders/1b/8z8bqn7s4l552fg3fpkkgnwr0000gn/T/stack16982/persistent-mongoDB-2.9.0/Database/Persist/MongoDB.hs:811:17: error:
persistent-mongoDB>     Not in scope: type constructor or class ‘FilterValue’
persistent-mongoDB>     |
persistent-mongoDB> 811 |              -> FilterValue a
persistent-mongoDB>     |                 ^^^^^^^^^^^
persistent-mongoDB> 
persistent-mongoDB> /private/var/folders/1b/8z8bqn7s4l552fg3fpkkgnwr0000gn/T/stack16982/persistent-mongoDB-2.9.0/Database/Persist/MongoDB.hs:885:41: error:
persistent-mongoDB>     Not in scope: type constructor or class ‘FilterValue’
persistent-mongoDB>     |
persistent-mongoDB> 885 | toValue :: forall a.  PersistField a => FilterValue a -> DB.Value
persistent-mongoDB>     |                                         ^^^^^^^^^^^
persistent-mongoDB> 
persistent-mongoDB> /private/var/folders/1b/8z8bqn7s4l552fg3fpkkgnwr0000gn/T/stack16982/persistent-mongoDB-2.9.0/Database/Persist/MongoDB.hs:888:7: error:
persistent-mongoDB>     Not in scope: data constructor ‘FilterValue’
persistent-mongoDB>     Perhaps you meant variable ‘filterValue’ (imported from Database.Persist)
persistent-mongoDB>     |
persistent-mongoDB> 888 |       FilterValue v   -> DB.val $ toPersistValue v
persistent-mongoDB>     |       ^^^^^^^^^^^
persistent-mongoDB> 
persistent-mongoDB> /private/var/folders/1b/8z8bqn7s4l552fg3fpkkgnwr0000gn/T/stack16982/persistent-mongoDB-2.9.0/Database/Persist/MongoDB.hs:889:7: error:
persistent-mongoDB>     Not in scope: data constructor ‘UnsafeValue’
persistent-mongoDB>     |
persistent-mongoDB> 889 |       UnsafeValue v   -> DB.val $ toPersistValue v
persistent-mongoDB>     |       ^^^^^^^^^^^
persistent-mongoDB> 
persistent-mongoDB> /private/var/folders/1b/8z8bqn7s4l552fg3fpkkgnwr0000gn/T/stack16982/persistent-mongoDB-2.9.0/Database/Persist/MongoDB.hs:890:7: error:
persistent-mongoDB>     Not in scope: data constructor ‘FilterValues’
persistent-mongoDB>     Perhaps you meant variable ‘filterValue’ (imported from Database.Persist)
persistent-mongoDB>     |
persistent-mongoDB> 890 |       FilterValues vs -> DB.val $ map toPersistValue vs
persistent-mongoDB>     |       ^^^^^^^^^^^^
persistent-mongoDB> 
persistent-mongoDB> /private/var/folders/1b/8z8bqn7s4l552fg3fpkkgnwr0000gn/T/stack16982/persistent-mongoDB-2.9.0/Database/Persist/MongoDB.hs:1043:8: error:
persistent-mongoDB>     Not in scope: data constructor ‘PersistArray’
persistent-mongoDB>     Perhaps you meant one of these:
persistent-mongoDB>       ‘PersistError’ (imported from Database.Persist),
persistent-mongoDB>       ‘PersistDay’ (imported from Database.Persist)
persistent-mongoDB>      |
persistent-mongoDB> 1043 |   val (PersistArray a)      = DB.val $ PersistList a
persistent-mongoDB>      |        ^^^^^^^^^^^^
persistent-mongoDB> 
persistent-mongoDB> /private/var/folders/1b/8z8bqn7s4l552fg3fpkkgnwr0000gn/T/stack16982/persistent-mongoDB-2.9.0/Database/Persist/MongoDB.hs:1234:55: error:
persistent-mongoDB>     Not in scope: type constructor or class ‘FilterValue’
persistent-mongoDB>      |
persistent-mongoDB> 1234 | data MongoFilterOperator typ = PersistFilterOperator (FilterValue typ) PersistFilter
persistent-mongoDB>      |                                                       ^^^^^^^^^^^
persistent-mongoDB> 

Я предполагаю, что какая-то зависимость отсутствует или неправильная? Я не мог понять, однако.

Я пытался изменить зависимость persistent на >= 2.10 вместо >= 2.9, но это приводило к другим проблемам.

Если я изменяюpersistent-mongoDB зависимость от чего-то < 2.9 Кажется, я конфликтую с некоторой зависимостью самого persistent-mongoDB. Кроме того, я действительно не хочу использовать более старую версию, если в этом нет крайней необходимости.

Любая помощь будет принята.

...