Request
Request(value, decode_err) :: # (opaque)
One command and its semantic decoder. The decoder's error type belongs to the caller. Redis errors are intercepted before invoking that decoder.
command : Request(value, error) -> Command
map : Request(a, error), (a -> b) -> Request(b, error)
Error : [ServerError(Bytes), ReplyDecodeFailure(error)]