Currently, monad-logger fails to build on GHC 8.2, giving this error:
[1 of 2] Compiling Control.Monad.Logger ( Control/Monad/Logger.hs, dist/build/Control/Monad/Logger.o )
Control/Monad/Logger.hs:203:13: error:
• The default type signature for monadLoggerLog:
forall (t :: (* -> *) -> * -> *) msg.
(Trans.MonadTrans t, MonadLogger (t m), ToLogStr msg) =>
Loc -> LogSource -> LogLevel -> msg -> t m ()
does not match its corresponding non-default type signature
• When checking the class method:
monadLoggerLog :: forall (m :: * -> *).
MonadLogger m =>
forall msg.
ToLogStr msg =>
Loc -> LogSource -> LogLevel -> msg -> m ()
In the class declaration for ‘MonadLogger’
|
203 | default monadLoggerLog :: (Trans.MonadTrans t, MonadLogger (t m), ToLogStr msg)
| ^^^^^^^^^^^^^^
This is because the validity checking for default type signatures tightened up in GHC 8.2 (see also GHC Trac #12918). In particular, GHC requires that the default type signature of a method must be the same as the non-default type signature, modulo constraints.
This PR fixes the default type signature for monadLoggerLog to meet this criterion.
Currently,
monad-logger
fails to build on GHC 8.2, giving this error:This is because the validity checking for default type signatures tightened up in GHC 8.2 (see also GHC Trac #12918). In particular, GHC requires that the default type signature of a method must be the same as the non-default type signature, modulo constraints.
This PR fixes the default type signature for
monadLoggerLog
to meet this criterion.