anchor.diff:                    end]))
        || #field{fnum=FNum, name=FName}=FieldDef <- MsgDef].
   
  -mk_field_decoder_vi_params(#field{type=Type}) ->
  +mk_field_decoder_vi_params(#field{type=Type, is_packed=false}) ->
       case Type of
           sint32   -> "0, 0"; %% varint-based
           sint64   -> "0, 0"; %% varint-based
  
positive.code:      f("    <<PackedBytes:Len/binary, Rest2/binary>> = Rest,~n"),
       f("    NewSeq = ~p(PackedBytes~sAccSeq),~n",
         [mk_fn(d_packed_field_, MsgName, FName),
          case mk_field_decoder_vi_params(FieldDef) of
              ""     -> [", "];
              Params -> [", ", Params, ", "]
          end]),
  
negative.code:         string   -> "0, 0"; %% varint-based
          bytes    -> "0, 0"; %% varint-based
          {msg,_}  -> "0, 0"  %% varint-based
      end;
  mk_field_decoder_vi_params(#field{is_packed=true}) ->
      "0, 0". %% length of packed bytes is varint-based
  
  
  format_field_decoders(MsgName, MsgDef) ->
      [[format_field_decoder(MsgName, FieldDef), "\n"]
  