Tristan de Cacqueray
Tristan de Cacqueray
I guess changing the name from MatrixM to MatrixT is reasonable, though I don't get what's the benefit of having a MonadMatrix class, e.g. I find the 'throwMatrixError' method confusing....
In the CHANGELOG, I would add a migration note, something like: - Migrate to the new API by replacing call site from `Network.Matrix.Client.method session arg` to `runMatrixIO session (method arg)`...
How about adding a `loginToken :: LoginCredentials -> MatrixIO (ClientSession, MatrixToken)` instead, and make the current login be `fst loginToken cred` ? Or perhaps we could simply change the current...
We might also want to add a `loginCacheToken` helper that would copy the token in `~/.cache/haskell-matrix-client/token` and re-use it on subsequent call to avoid leaking access tokens. That might be...
Thank you for the feedback and the contributions, the cofree-bot looks great! Thinking about it some more, caching the token can be tricky, how the caller would know if the...
For example, a cache aware interface could take a `IO LoginCredentials` action as a parameter, and it would run it if the cached token is missing or invalid. But I...
Fixed by #19
That's amazing, thank you for taking the time to contribute this work. I'm not super familiar with the `monad-control` and the extensions you put together for the `Bot.State module`. So...
Also, my original plan for that matrix-bot project was to re-implement the lambdabot (that is to evaluate user provided lambda expression and reply with the result). Then leveraging `m.relates_to` and...
If I understand correctly, [UnliftIO.Async](https://hackage.haskell.org/package/unliftio) would also work, and it's perhaps more beginner friendly. I think it's fair to require the user provided MatrixBotBase to implement MonadUnliftIO, especially if that...