Странная ошибка при сборке derive-2.3.0.2
-
10-10-2019 - |
Вопрос
Я пытаюсь установить редактор "yi" с помощью cabal-install, который, в свою очередь, устанавливает пакет "derive-2.3.0.2".Я получаю следующую ошибку во время компиляции derive:
[53 of 58] Compiling Data.Derive.Internal.Traversal ( Data/Derive/Internal/Traversal.hs, dist/build/Data/Derive/Internal/Traversal.o ) Data/Derive/Internal/Traversal.hs:34:0: Illegal instance declaration for `Applicative (Writer w)' (All instance types must be of the form (T t1 ... tn) where T is not a synonym. Use -XTypeSynonymInstances if you want to disable this.) In the instance declaration for `Applicative (Writer w)' cabal: Error: some packages failed to install: derive-2.3.0.2 failed during the building phase. The exception was: ExitFailure 1
Конечно, я попытался собрать его с помощью --ghc-option=-XTypeSynonymInstances, что, в свою очередь, выдает еще одну ошибку компиляции.
Я использую 32-разрядную версию ubuntu maverick с ghc-6.12.1 и cabal-install 0.8.2.ghc был установлен из репозитория пакетов.Cabal был установлен с помощью:
cabal-install cabal
Алекс.
Решение
Я бы подумал о том, чтобы сообщить об ошибке или задать вопрос по haskell-cafe@haskell.org адрес.Предполагается, что это была ошибка.Вероятно, вы также можете попробовать установить одну из старых версий с Взлом.
Другие советы
Я получаю ту же ошибку при создании derive-2.3.0.2 (также при попытке установить Yi).Как и в случае с вами, добавление языкового расширения TypeSynonymInstances только ухудшило ситуацию.
Хотя я согласен, что это следует считать ошибкой, в derive-2.4.1, которая является последней версией Hackage, это не проблема.Если у вас это установлено, вы можете создать Yi, загрузив исходный код пакета и соответствующим образом изменив ограничение производной зависимости.Затем Yi создает / запускает для меня, но я могу только предположить, что, возможно, была основная причина для исходного ограничения (производный < 2.4).
Я не смотрел, но, возможно, глава darcs для Yi также решил некоторые из этих проблем.
Удачи вам!