anchor.diff:      encode(FieldID, list_to_binary(String), string);
   encode(FieldID, String, string) when is_binary(String) ->
       encode(FieldID, String, bytes);
  +encode(FieldID, String, bytes) when is_list(String) ->
  +    encode(FieldID, list_to_binary(String), bytes);
   encode(FieldID, Bytes, bytes) when is_binary(Bytes) ->
       [encode_field_tag(FieldID, ?TYPE_STRING), encode_varint(size(Bytes)), Bytes];
   encode(FieldID, Float, float) when is_float(Float) ->
  
positive.code: decode_many(<<>>, Acc) -> lists:keysort(1, Acc);
  decode_many(Bytes, Acc) ->
      {A, B} = decode(Bytes, bytes),
      decode_many(B, [A | Acc]).
  
negative.code: -define(TYPE_END_GROUP, 4).
  -define(TYPE_32BIT, 5).
  
  %% @spec encode(FieldID, Value, Type) -> Result
  %%       FieldID = integer()
  %%       Value = any()
  