anchor.diff:                               {'<Rest>', Rest}]),
       BodyTailFn =
           fun(DecodeExprs, Rest2Var) ->
  -                C = ?exprs('<call-recursively>'('<Rest2>', 0, 0,
  -                                                ['<Res>' | AccSeq]),
  +                C = ?exprs(call_self('<Rest2>', 0, 0, ['<Res>' | AccSeq]),
                              [replace_tree('<Rest2>', Rest2Var),
                               replace_tree('<Res>', FVar)]),
                   DecodeExprs ++ C
           end,
       Body = decode_int_value(FVar, Bindings, FieldDef, Opts, BodyTailFn),
       [gpb_codegen:format_fn(
  -       FnName,
  +       mk_fn(d_packed_field_, MsgName, FName),
          fun(<<1:1, X:7, Rest/binary>>, N, Acc, AccSeq) ->
  -               '<call-recursively>'(Rest, N + 7, X bsl N + Acc, AccSeq);
  +               call_self(Rest, N + 7, X bsl N + Acc, AccSeq);
             (<<0:1, X:7, Rest/binary>>, N, Acc, AccSeq) ->
                  '<body>';
             (<<>>, 0, 0, AccSeq) ->
                  AccSeq
          end,
  -       [splice_trees('<body>', Body),
  -        replace_term('<call-recursively>', FnName)]),
  +       [splice_trees('<body>', Body)]),
        "\n\n"].
   
   format_vi_based_field_decoder(MsgName, FieldDef, AnRes, Opts) ->
       #field{name=FName}=FieldDef,
  -    FnName = mk_fn(d_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:     #field{name=FName, rnum=RNum, opts=FOpts} = FieldDef,
      FieldDefAsNonpacked = FieldDef#field{opts = FOpts -- [packed]},
      Zeros = compute_decoder_call_fill(FieldDefAsNonpacked, no_fill),
      DecodePackWrapFn = mk_fn(d_field_, MsgName, FName),
      Params = decoder_params(MsgName, AnRes),
      Param = case get_field_pass(MsgName, AnRes) of
                  pass_as_params ->
  
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)},
  