diff options
author | Teddy Wing | 2017-09-11 00:32:37 +0200 |
---|---|---|
committer | Teddy Wing | 2017-09-11 00:32:37 +0200 |
commit | 356926db7763b21b9c4e1a9fd36e37caa04c25ca (patch) | |
tree | aa7e1eab2f4a2076683250191f459f9cb2b43b51 /src/Bot.hs | |
parent | 8e5b862c9171af8af7c6c0d0456ae67a9e737633 (diff) | |
download | sorbot-356926db7763b21b9c4e1a9fd36e37caa04c25ca.tar.bz2 |
Create `Bot` type
This type will be used as an application-level monad, enabling us to
transmit configuration coming from CLI arguments (`Options`) to any
function that needs it.
The immediate benefit is that we'll be able to easily transmit the
specified language to functions to allow them to use the right
translation string.
Diffstat (limited to 'src/Bot.hs')
-rw-r--r-- | src/Bot.hs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/Bot.hs b/src/Bot.hs new file mode 100644 index 0000000..a661ea4 --- /dev/null +++ b/src/Bot.hs @@ -0,0 +1,15 @@ +-- {-# LANGUAGE ConstraintKinds #-} +-- {-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE GeneralizedNewtypeDeriving #-} + +module Bot + ( Bot(..) + ) where + +import Control.Monad.Reader + +import CliOptions (Options) + +newtype Bot a = Bot + { runBot :: ReaderT Options IO a + } deriving (Monad, Functor, Applicative, MonadIO) |