anchor.diff:  encode_data(Comp, _, ?S_TXT, in, Data) -> {encode_txt(Data),Comp};
   encode_data(Comp, _, ?S_SPF, in, Data) -> {encode_txt(Data),Comp};
   encode_data(Comp, _, ?S_URI, in, Data) -> {encode_txt(Data),Comp};
  +encode_data(Comp, _, ?S_CAA, in, {Flags,Tag,Value}) ->
  +    B0 = <<Flags:8>>,
  +    B1 = encode_string(B0, iolist_to_binary(Tag)),
  +    B2 = iolist_to_binary(Value),
  +    {<<B1/binary,B2/binary>>,Comp};
   encode_data(Comp, _, ?S_CAA, in, Data) -> {encode_txt(Data),Comp};
   encode_data(Comp, _Pos, _Type, _Class, Data) -> {iolist_to_binary(Data),Comp}.
   
  
positive.code:     {Data2,Services} = decode_string(Data1),
      {Data,Regexp} = decode_characters(Data2, utf8),
      Replacement = decode_domain(Data, Buffer),
      {Order,Preference,string:lowercase(Flags),string:lowercase(Services),
       Regexp,Replacement};
  %% ?S_OPT falls through to default
  decode_data(Data, _, ?S_TXT, _) ->
  
negative.code: 	    %% programming errors easier to locate.
  	    erlang:error(badarg, [Label,Name,N])
      end.
  
  %% Just lowercase ASCII A..Z
  to_lower([C | Cs]) when $A =< C, C =< $Z ->
      [C + 32 | to_lower(Cs)];
  to_lower([C | Cs]) ->
      [C | to_lower(Cs)];
  to_lower([]) ->
      [].
  
  %%
  %% Data field -> {binary(),NewCompressionTable}
  