on master help sign in
Merge pull request #242 from obsidiansystems/mtl-commute

Add missing mtl-style instances for HasCliConfig

commit786216782ac9d7153c3f6d9f260cc1b926d1fb9f authorLuigy Leon <luichi.19@gmail.com> dateMon 15 Oct 2018, 19:42 (8 years ago) parent5fc7a332443424
2 files changed+17−5
lib/cliapp/src/Obelisk/CliApp/Types.hs+16 lib/command/src/Obelisk/App.hs+1−5
lib/cliapp/src/Obelisk/CliApp/Types.hs+16
@@ -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
lib/command/src/Obelisk/App.hs+1−5
@@ -9,11 +9,10 @@ module Obelisk.App where
99
1010import Control.Monad.Catch (MonadCatch, MonadMask, MonadThrow)
1111import Control.Monad.Reader (MonadIO, ReaderT (..), ask, runReaderT)
12−import Control.Monad.Trans.Class (lift)
1312import System.Directory (XdgDirectory (XdgData), getXdgDirectory)
1413import Control.Monad.Log (MonadLog)
1514
16−import Obelisk.CliApp (CliConfig, CliT, HasCliConfig, getCliConfig, runCli, Output)
15+import Obelisk.CliApp (CliConfig, CliT, HasCliConfig, runCli, Output)
1716
1817newtype Obelisk = Obelisk
1918 { _obelisk_cliConfig :: CliConfig
@@ -34,9 +33,6 @@ class HasObelisk m where
3433instance Monad m => HasObelisk (ReaderT Obelisk m) where
3534 getObelisk = ask
3635
37−instance HasCliConfig m => HasCliConfig (ReaderT Obelisk m) where
38− getCliConfig = lift getCliConfig
39−
4036runObelisk :: MonadIO m => Obelisk -> ObeliskT m a -> m a
4137runObelisk c =
4238 runCli (_obelisk_cliConfig c)