@@ -9,6 +9,10 @@ import Control.Concurrent.MVar (MVar)
99import Control.Monad.Catch (MonadCatch, MonadMask, MonadThrow)
1010import Control.Monad.Log (LoggingT, MonadLog, Severity (..), WithSeverity (..))
1111import Control.Monad.Reader (MonadIO, ReaderT (..), ask)
12+import Control.Monad.Writer (WriterT)
13+import Control.Monad.State (StateT)
14+import Control.Monad.Except (ExceptT)
15+import Control.Monad.Trans (lift)
1216import Data.IORef (IORef)
1317import Data.Text (Text)
1418
@@ -47,3 +51,15 @@ class Monad m => HasCliConfig m where
4751
4852instance Monad m => HasCliConfig (CliT m) where
4953 getCliConfig = CliT ask
54+
55+instance HasCliConfig m => HasCliConfig (ReaderT r m) where
56+ getCliConfig = lift getCliConfig
57+
58+instance (Monoid w, HasCliConfig m) => HasCliConfig (WriterT w m) where
59+ getCliConfig = lift getCliConfig
60+
61+instance HasCliConfig m => HasCliConfig (StateT s m) where
62+ getCliConfig = lift getCliConfig
63+
64+instance HasCliConfig m => HasCliConfig (ExceptT e m) where
65+ getCliConfig = lift getCliConfig