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:   <<8, StringEncoded/binary, 1:8>>;
  
  encode_element({Name, {MegaSecs, Secs, MicroSecs}})
        when  is_list(Name),
              is_integer(MegaSecs),
              is_integer(Secs),
              is_integer(MicroSecs) ->
    StringEncoded = encode_cstring(Name),
    Unix = MegaSecs * 1000000 + Secs,
    Millis = Unix * 1000 + trunc(MicroSecs / 1000),
  
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),
  