Îõ³h)\»     2.0.0 Safe-Inferred"3;Ô‹respRESP3 Expression.ÜThis descriminates the difference between RespString and RespBlob, even though both contain bytestrings, in order to not throw away information. A caller might care whether the response was delivered with "+", or "$".æWe do not, however descriminate between the different encodings of null. As far as I can tell, these are considered a mistake in the previous versions of the RESP spec, and clients should treat the different encodings the same.Why don't we parse  into ›? Well, the caller might not actually need to decode it into text, and so we let the caller decide. This way, we don't have to deal with encoding errors.Similarly, we don't parse a  into a ñ, because that would involve imposing our choice of data structure on the caller. The caller might want to use , -, iterate over the elements, or just use the  function.respŽA message from the server (eg. Redis) to the client. This can be a push message (for pub/sub), or a reply to a command issued by the client.respParse a RESP3 messagerespParse a RESP3 expressionresp>Parse a RESP3 expression, taking its first char as a parameter         !"#$%&'()*+resp-2.0.0-inplace Data.RESPresp Data.TextText Data.HashMapHashMapData.MapMapRespExpr RespStringRespBlobRespStreamingBlobRespStringError RespBlobError RespArray RespIntegerRespNullRespBool RespDoubleRespVerbatimStringRespVerbatimMarkdownRespBigIntegerRespMapRespSet RespAttribute RespMessageRespPush RespReply parseMessageparseExpression$fShowRespMessage$fEqRespMessage$fOrdRespMessage$fGenericRespMessage$fShowRespExpr $fEqRespExpr $fOrdRespExpr$fGenericRespExprbaseGHC.ListlookupparseExpression'