Skip to content

defaultLiftWith2 broken with ghc-9.0.1 #52

@jumper149

Description

@jumper149

Older ghc versions are working, but with ghc 9.0.1 this fails:
https://travis-ci.com/github/jumper149/blucontrol/jobs/499404592#L486

src/Blucontrol/Recolor/X.hs:36:14: error:
    • Couldn't match type: Monad (ReaderT Display m1)
                     with: RecolorXT m1 b
      Expected: (Run RecolorXT -> m a) -> RecolorXT m a
        Actual: (RunDefault2 RecolorXT (ExceptT XError) (ReaderT Display)
                 -> m a)
                -> RecolorXT m a
    • In the expression: defaultLiftWith2 RecolorXT unRecolorXT
      In an equation for ‘liftWith’:
          liftWith = defaultLiftWith2 RecolorXT unRecolorXT
      In the instance declaration for ‘MonadTransControl RecolorXT’
   |
36 |   liftWith = defaultLiftWith2 RecolorXT unRecolorXT
   |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The source code is here:
https://github.com/jumper149/blucontrol/blob/v0.3.0.0/src/Blucontrol/Recolor/X.hs#L36

newtype RecolorXT m a = RecolorXT { unRecolorXT :: ExceptT XError (ReaderT Display m) a }
  deriving (Applicative, Functor, Monad, MonadBase b, MonadBaseControl b, MonadError XError)

instance MonadTrans RecolorXT where
  lift = RecolorXT . lift . lift

instance MonadTransControl RecolorXT where
  type StT RecolorXT a = StT (ReaderT Display) (StT (ExceptT XError) a)
  liftWith = defaultLiftWith2 RecolorXT unRecolorXT
  restoreT = defaultRestoreT2 RecolorXT

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions