aboutsummaryrefslogtreecommitdiffstats
path: root/src/Bot.hs
AgeCommit message (Collapse)Author
2017-09-19Plugin(matchPlugin): Get our functions to actually work with `Bot`Teddy Wing
Previously we added the `Bot` monad to our signature, but we didn't have a way to filter and match plugins wrapped in the `Bot` monad. This is what we're doing here. It's the same work as before, but we need to account for a wrapped `Plugin` type. There's a lot of extra cruft code here from when I was trying things out to get it working. The short story is that I do some binding and sequencing dances to extract `Plugin`s so that we can actually match against them. I've seen recommendations against `fail`, which is why I tried to use `mzero`, but it just seemed to be too complicated so went with `fail`, which seems to make sense in context.
2017-09-13Bot: Try adding a BotConfig typeTeddy Wing
Tried adding this to replicate some code I had been reading, but ultimately it didn't really change anything. In the end I don't need this type, at least not right now, but it was an interesting exercise I suppose.
2017-09-11Create `Bot` typeTeddy Wing
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.