anchor.diff:      end.
   
   format_dpacked_nonvi(MsgName, #field{name=FName}, BitLen, BitTypes) ->
  -    FnName = mk_fn(d_packed_field_, MsgName, FName),
       [gpb_codegen:format_fn(
  -       FnName,
  +       mk_fn(d_packed_field_, MsgName, FName),
          fun(<<Value:'<N>'/'<T>', Rest/binary>>, AccSeq) ->
  -               '<call-recursively>'(Rest, [Value | AccSeq]);
  +               call_self(Rest, [Value | AccSeq]);
             (<<>>, AccSeq) ->
                  AccSeq
          end,
  -       [replace_term('<call-recursively>', FnName),
  -        replace_term('<N>', BitLen),
  +       [replace_term('<N>', BitLen),
           splice_trees('<T>', [erl_syntax:atom(BT) || BT <- BitTypes])]),
        "\n\n"].
   
   format_dpacked_vi(MsgName, #field{name=FName}=FieldDef, Opts) ->
  -    FnName = mk_fn(d_packed_field_, MsgName, FName),
       ExtValue = ?expr(X bsl N + Acc),
       FVar = ?expr(NewFValue), %% result is to be put in this variable
       Rest = ?expr(Rest),
  
positive.code:         end,
      Body = decode_int_value(FVar, Bindings, FieldDef, Opts, BodyTailFn),
      gpb_codegen:format_fn(
        FnName,
        fun(<<1:1, X:7, Rest/binary>>, N, Acc, '<Params>') ->
                '<call-recursively>'(Rest, N + 7, X bsl N + Acc, '<Params>');
           (<<0:1, X:7, Rest/binary>>, N, Acc, '<InParams>') ->
                '<body>'
        end,
        [replace_term('<call-recursively>', FnName),
         splice_trees('<Params>', Params),
         splice_trees('<InParams>', InParams),
         splice_trees('<body>', Body)]).
  
  
negative.code:               '<finalize-result>'
        end,
        [{splice_trees, '<Params>', Params},
         {replace_tree, '<Key>', Key},
         {replace_tree, '<calls-to-field-decoding-or-skip>',
          decoder_field_calls(Bindings, MsgName, MsgDef, AnRes)},
  