Use guard to "flatten" code
Return {ok,{_,_}} from decode_integer on success
Return {ok,{_,_}} from decode_string on success
Refactor a bit
Return {ok, _} from huffman:decode() on success
Code cleanup
Rename no_match as nomatch
Refactor a bit