anchor.diff:  
   encode_element({Name, {ref, Collection,
         <<First:8/little-binary-unit:8, Second:4/little-binary-unit:8>>}})
  -          when is_list(Name), is_list(Collection) ->
  +    when is_list(Name), is_list(Collection) ->
     StringEncoded = encode_cstring(Name),
     CollectionEncoded = encode_cstring(Collection),
     FirstReversed = lists:reverse(binary_to_list(First)),
  
positive.code:   {String, RestNext} = decode_cstring(Rest, []),
    ActualSize = size(Rest) - size(RestNext),
    case ActualSize =:= Size of
        false ->
            ?debugFmt("* ~p =:= ~p -> false", [ActualSize, Size]),
            throw({invalid_length, expected, Size, ActualSize});
        true ->
            {String, RestNext}
    end;
  
  decode_value(_Type = 3, <<Size:32/little-signed, Rest/binary>> = Binary)
  
negative.code:   hexstr_to_bin(T, [V | Acc]).
  
  encode({obj,Items}) when is_list(Items) ->
    Bin = list_to_binary(lists:map(fun encode_element/1, Items)),
    <<(size(Bin)+5):32/little-signed,Bin/binary,0:8>>.
  
  encode_element({Name, Value}) when is_list(Name), is_float(Value) ->
    NameEncoded = encode_cstring(Name),
  