diff --git a/src/QBar/Core.hs b/src/QBar/Core.hs index 59104f998cc2711964c771c351b56315a55d75e8..8a235cfa7e9da14ee401c0fbf00e27f381ae353d 100644 --- a/src/QBar/Core.hs +++ b/src/QBar/Core.hs @@ -14,6 +14,8 @@ import Control.Exception (IOException) import Control.Lens import Control.Monad (forever) import Control.Monad.Reader (ReaderT, runReaderT, ask) +import Control.Monad.State (StateT) +import Control.Monad.Writer (WriterT) import Data.Aeson.TH import qualified Data.ByteString.Lazy.Char8 as C8 import Data.Int (Int64) @@ -93,6 +95,12 @@ instance MonadBarIO BarIO where liftBarIO = id instance (MonadBarIO m) => MonadBarIO (Proxy a' a b' b m) where liftBarIO = lift . liftBarIO +instance (MonadBarIO m) => MonadBarIO (StateT a m) where + liftBarIO = lift . liftBarIO +instance (MonadBarIO m) => MonadBarIO (ReaderT a m) where + liftBarIO = lift . liftBarIO +instance (MonadBarIO m, Monoid a) => MonadBarIO (WriterT a m) where + liftBarIO = lift . liftBarIO askBar :: MonadBarIO m => m Bar askBar = liftBarIO $ lift ask