2014-10-22 2 views
3

В прошлом я создал некоторый код, который использует Data.Bytestring.Lazy. Теперь, когда я пытаюсь скомпилировать его, бесконечное то, что я получаю, - это куча ошибок. Пример ошибки:Bytestring не может использоваться

Couldn't match expected type `BL.ByteString' 
       with actual type `bytestring-0.10.0.2:Data.ByteString.Lazy.Internal.ByteString' 
    In the return type of a call of `decompress' 
    In the second argument of `decrypt', namely `(decompress fc)' 
    In the second argument of `BL.filter', namely 
     `(decrypt (extractKey tkey) (decompress fc))' 

... И много ошибок, как это ...

Мой импорт байтовой строки: импорт Data.ByteString.Lazy в БЛ. Что делать с этим?

EDIT:

СПАСИБО за помощь. С явной версией пакета все работает нормально. Но мне это не нравится. Когда я пытаюсь отменить регистрацию одного из двух установленных пакетов для тестирования. Многие пакеты будут разбиты. Новейшая версия пакета прерывает небольшое количество пакетов (без пакетов ядра). Как отремонтировать упакованные пакеты, которые уничтожены незарегистрированным пакетом?

EDIT:

Нет, это не работает нормально с явной версии пакета. Я написал редактирование, прежде чем я попробовал его физически. Это была ошибка. Ничего не работает.

+2

У вас установлено несколько версий bytestring? ('ghc-pkg list bytestring') – user2407038

+1

Чтобы добавить комментарий от пользователя @ user2407038, это похоже на проблему с« адским камнем ». Вы используете [cabal sandboxes] (http://coldwa.st/e/blog/2013-08-20-Cabal-sandbox.html)? – asm

+1

В GHC был вариант, чтобы решить эту проблему. Попробуйте выполнить компиляцию с помощью 'ghc -package = bytestring-0.10.0.2 ...'. Может быть, это помогает. – Vektorweg

ответ

1

Да, я решил проблему. Злой пакет был zlib, который использует старую версию bytestring, но все пакеты для шифрования используют новую версию. Когда я выбросил код для сжатия, моя программа скомпилирована. Теперь я ищу некоторые алгоритмы сжатия ...

+1

Вам лучше не регистрировать все пакеты, которые зависят от новой байтовой строки и переустанавливать их на версию bytestring, поставляемую вместе с вашим компилятором. В противном случае вы снова столкнетесь с этой ситуацией. –

+0

Спасибо за советы. Cabal hell ... – rosetree

+0

песочницы песочницы песочницы – alternative

Смежные вопросы