ekmett / transformers-compat

transformers compatibility shim
Other
10 stars 12 forks source link

Build fails with GHC 8.6.3 #43

Closed DanielG closed 5 years ago

DanielG commented 5 years ago

See https://hackage.haskell.org/package/transformers-compat-0.6.3/reports/1

src/Control/Monad/Trans/Instances.hs:610:10: error:
    Duplicate instance declarations:
      instance MonadFix m => MonadFix (ListT m)
        -- Defined at src/Control/Monad/Trans/Instances.hs:610:10
      instance [safe] MonadFix m => MonadFix (ListT m)
        -- Defined in ‘Control.Monad.Trans.List’
    |
610 | instance (MonadFix m) => MonadFix (ListT m) where
    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RyanGlScott commented 5 years ago

This is a symptom of haskell-infra/hackage-trustees#209. Until that is resolved, you can work around the issue by either:

  1. Using GHC 8.6.4 or later
  2. Requiring --constraint="transformers>=0.5.6.0"
ivanperez-keera commented 5 years ago

This prevents the build of documentation on hackage for any package that directly or indirectly depends on transformers-compat (there are 127 packages that depend on transformers-compat directly).

RyanGlScott commented 5 years ago

As a short-term solution, I've uploaded transformers-compat-0.6.4 to Hackage and deprecated 0.6.3, which should be buildable with GHC 8.6.1–8.6.3 + transformers-0.5.5.1+. As a compromise, transformers-compat-0.6.4 doesn't backport the MonadFix instance for ListT everywhere that it could for the time being, but fixing that will require action on transformers' end, which is the subject of haskell-infra/hackage-trustees#209.