Hedis wraps up the Redis commands in a monad called RedisCtx m f. At first, this seems complicated, but it helps us to run Redis commands individually or together in a transaction. In the transactions, however, it is not possible to use the result value of the command, as the commands are queued. The hedis library wraps redis commands with the functions with same names (but lowercase).
All the commands work with ByteString. Any serialization should be done to and from the ByteString.