Не удается установить yesod с «объявлением дубликата экземпляра» - PullRequest
4 голосов
/ 12 сентября 2011

Когда я пытаюсь установить yesod с помощью команды "cabal install yesod", я получаю следующие ошибки:

cabal install rsa
Resolving dependencies...
Configuring RSA-1.0.6.1...
Preprocessing library RSA-1.0.6.1...
Preprocessing executables for RSA-1.0.6.1...
Building RSA-1.0.6.1...
[1 of 1] Compiling Codec.Crypto.RSA ( Codec/Crypto/RSA.hs, dist/build/Codec/Crypto/RSA.o )

Codec/Crypto/RSA.hs:577:10:
    Duplicate instance declarations:
      instance Random Word8 -- Defined at Codec/Crypto/RSA.hs:577:10-21
      instance Random Word8 -- Defined in System.Random
cabal: Error: some packages failed to install:

Кажется, что RSA lib конфликтует с другой библиотекой.

Любая идея?

Моя среда: Mac OS X 10.7 GHC 7.0.3

Заранее спасибо.

1 Ответ

5 голосов
/ 12 сентября 2011

Пакет random начал экспортировать новые экземпляры в версии 1.0.1.0.Одним из решений будет условная компиляция экземпляра библиотеки RSA, только когда пакет random имеет эту версию или более позднюю;некоторые варианты, подобные этой, должны работать:

{-# LANGUAGE CPP #-}
#if MIN_VERSION_random(1,0,1)
#else
instance Random Word8 where
    ...
#endif

Бонусные баллы, если вы отправляете патч сопровождающему библиотеки RSA.

В качестве альтернативы, вы можете попросить Cabal использовать более старую версию random.

...