anchor.diff:  
   format_field_adders(MsgName, MsgDef) ->
       [case classify_field_merge_action(FieldDef) of
  -        msgmerge  -> format_field_msgmerge_adder(MsgName, FieldDef);
  -        overwrite -> format_field_overwrite_adder(MsgName, FieldDef);
  -        seqadd    -> format_field_seqappend_adder(MsgName, FieldDef)
  +         msgmerge  ->
  +             format_field_msgmerge_adder(MsgName, FieldDef);
  +         overwrite ->
  +             format_field_overwrite_adder(MsgName, FieldDef);
  +         seqadd ->
  +             case is_packed(FieldDef) of
  +                 false -> format_field_seqappend_adder(MsgName, FieldDef);
  +                 true  -> ""
  +             end
        end
        || FieldDef <- MsgDef].
   
  
positive.code:     case FieldDef of
          #field{occurrence=required, type={msg, _}} -> msgmerge;
          #field{occurrence=optional, type={msg, _}} -> msgmerge;
          #field{occurrence = required}              -> overwrite;
          #field{occurrence = optional}              -> overwrite;
          #field{occurrence = repeated}              -> seqadd
      end.
  
  
  
negative.code: -include_lib("eunit/include/eunit.hrl").
  -include("../include/gpb.hrl").
  
  -record(ft, {type, occurrence, is_packed}).
  -record(anres, %% result of analysis
          {
            used_types      :: set(),  %% gpb_field_type()
            known_msg_size  :: dict(), %% MsgName -> Size | undefined
            msg_occurrences :: dict(), %% MsgName -> [occurrence()]
            fixlen_types    :: set(),  %% #ft{}
            packed_fields   :: set()   %% {MsgName,FieldName}
          }).
  
  
  