From 6b15ccd0f53c7ffd57820fb15664ecadee74392a Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Tue, 15 Aug 2023 10:33:19 +0200 Subject: Support repository path in commits --- app/SlackBuilder/Trans.hs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 app/SlackBuilder/Trans.hs (limited to 'app/SlackBuilder/Trans.hs') diff --git a/app/SlackBuilder/Trans.hs b/app/SlackBuilder/Trans.hs new file mode 100644 index 0000000..d678a19 --- /dev/null +++ b/app/SlackBuilder/Trans.hs @@ -0,0 +1,29 @@ +module SlackBuilder.Trans + ( SlackBuilderT(..) + ) where + +import Control.Monad.Trans.Reader (ReaderT(..)) +import SlackBuilder.Config +import Control.Monad.IO.Class (MonadIO(..)) + +newtype SlackBuilderT a = SlackBuilderT + { runSlackBuilderT :: ReaderT Settings IO a + } + +instance Functor SlackBuilderT + where + fmap f (SlackBuilderT slackBuilderT) = SlackBuilderT $ f <$> slackBuilderT + +instance Applicative SlackBuilderT + where + pure = SlackBuilderT . pure + (SlackBuilderT f) <*> (SlackBuilderT x) = SlackBuilderT $ f <*> x + +instance Monad SlackBuilderT + where + return = pure + (SlackBuilderT x) >>= f = SlackBuilderT $ x >>= runSlackBuilderT . f + +instance MonadIO SlackBuilderT + where + liftIO = SlackBuilderT . liftIO -- cgit v1.2.3