GHC-MTL не в состоянии построить с GHC-7,8

Я пытаюсь собрать ghc-mtl-1.2.1.0 с ghc-7.8.3, и я получаю эти сообщения об ошибках:

Control/Monad/Ghc.hs:42:15:
    No instance for (GHC.MonadIO Ghc)
      arising from the 'deriving' clause of a data type declaration
    Possible fix:
      use a standalone 'deriving instance' declaration,
        so you can specify the instance context yourself
    When deriving the instance for (GHC.ExceptionMonad Ghc)

Control/Monad/Ghc.hs:46:15:
    No instance for (MonadIO GHC.Ghc)
      arising from the 'deriving' clause of a data type declaration
    Possible fix:
      use a standalone 'deriving instance' declaration,
        so you can specify the instance context yourself
    When deriving the instance for (MonadIO Ghc)

Control/Monad/Ghc.hs:49:15:
    No instance for (GHC.MonadIO Ghc)
      arising from the 'deriving' clause of a data type declaration
    Possible fix:
      use a standalone 'deriving instance' declaration,
        so you can specify the instance context yourself
    When deriving the instance for (GHC.GhcMonad Ghc)

Те же ошибки с ghc-7.8.2.

Я попытался выяснить, какой из более чем 9000 типов и / или модулей называется Ghc и / или GHC и / или MonadIO отвечает за это, но пока не повезло.

Итак, мои вопросы:

  • Какие изменения ответственны за эту поломку?
  • Можно ли это исправить без понижения версии с 7.8.3?

1 ответ

Решение

Отвечая на мой собственный вопрос.

Проблема заключалась в пакете transformers-0.4.1.0, который был установлен вместе с transformers-0.3.0.0, который поставляется с ghc. Пакет трансформаторов обеспечивает Control.Monad.IO.Class.MonadIO учебный класс. Он был втянут в сборку дважды, один раз из трансформаторов - 0.4.1.0 и один раз из трансформаторов - 0.3.0.0, что привело к конфликту.

Я видел дубликат пакета, но не понимал, что это было источником проблемы. Моя ошибка заключалась в том, что у меня есть скрытые трансформаторы-0.4.1.0 с ghc-pkg hide, попытался собрать ghc-mtl, проблема осталась, и я решил, что причина не в трансформаторах. Сокрытия, конечно, недостаточно, я должен был его убрать.

Удаление трансформаторов-0.4.1.0 и понижение его зависимостей решило проблему.

Другие вопросы по тегам