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.

new : Command, (Resp -> Try(value, error)) -> Request(value, error)
command : Request(value, error) -> Command
decode : Request(value, error), Resp -> Try(value, Error(error))
map : Request(a, error), (a -> b) -> Request(b, error)
Error : [ServerError(Bytes), ReplyDecodeFailure(error)]