From eef5ec8bc043149c6acb32a777c66a3da9bb2a15 Mon Sep 17 00:00:00 2001 From: Pagwin Date: Mon, 17 Nov 2025 23:05:29 -0500 Subject: [PATCH] fixed an overlapping issue --- app/Logger.hs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/Logger.hs b/app/Logger.hs index bee17ca..27eda93 100644 --- a/app/Logger.hs +++ b/app/Logger.hs @@ -29,7 +29,7 @@ instance Logger IO where logState :: (Monad m) => T.Text -> StateT T.Text m () logState msg = modify (<> msg <> "\n") -instance (Monad m) => Logger (StateT T.Text m) where +instance {-# OVERLAPPING #-} (Monad m) => Logger (StateT T.Text m) where logError = logState logWarning = logState logInfo = logState @@ -38,19 +38,19 @@ instance (Monad m) => Logger (StateT T.Text m) where logStateStr :: (Monad m) => T.Text -> StateT String m () logStateStr msg = modify (<> T.unpack msg <> "\n") -instance (Monad m) => Logger (StateT String m) where +instance {-# OVERLAPPING #-} (Monad m) => Logger (StateT String m) where logError = logStateStr logWarning = logStateStr logInfo = logStateStr logDebug = logStateStr -instance (Monad m) => Logger (WriterT T.Text m) where +instance {-# OVERLAPPING #-} (Monad m) => Logger (WriterT T.Text m) where logError = tell . (<> "\n") logWarning = tell . (<> "\n") logInfo = tell . (<> "\n") logDebug = tell . (<> "\n") -instance (Monad m) => Logger (WriterT String m) where +instance {-# OVERLAPPING #-} (Monad m) => Logger (WriterT String m) where logError = tell . T.unpack . (<> "\n") logWarning = tell . T.unpack . (<> "\n") logInfo = tell . T.unpack . (<> "\n") @@ -69,7 +69,7 @@ instance Logger Identity where logDebug = const $ pure () -- this isn't strictly correct but it's only used for ParsecT so it is practically correct -instance (MonadTrans mt, Logger m) => Logger (mt m) where +instance {-# OVERLAPPABLE #-} (MonadTrans mt, Logger m) => Logger (mt m) where logError = lift . logError logWarning = lift . logWarning logInfo = lift . logInfo