Improve Transaction Usability
Currently the use of multi will occur in a RedisError if the programmer has any dependent, monadic actions within the call of multi.
This can be seen in the issue here: redis-io#3 (closed)
And the merge request for documentation of this behaviour here: !2 (merged)
This issue proposes to think about a way that this can be avoided by the type system, if possible. Something of note is that applicative actions will work perfectly in a multi context. So possibly there is a way to separate the Redis type into two; one with an instance of Applicative and the other an instance of Monad. This way we restrict monadic actions being taken in the type with the Applicative instance.