<p><p>Decodes a binary string as RESP, returning Erlang terms representing  
the elements of the RESP provided.</p>
 
  <p>If decoding is successful, returns the tuple <code>{ok, Term, Rest}</code>, where Term  
is an Erlang term representing the decoded RESP, and Rest is the tail of Bin  
that was not parsed.</p>
 
  <p>If there is an error decoding Bin (because the RESP is invalid), the result
  is {error, {bad_resp, Stack}}, where Stack is a list of atoms showing the
  parsing stack. Often, the last elem