anchor.diff:  format_field_skippers(MsgName, AnRes) ->
       SkipVarintFnName = mk_fn(skip_varint_, MsgName),
       SkipLenDelimFnName = mk_fn(skip_length_delimited_, MsgName),
  -    ReadFieldFnName = mk_fn(d_read_field_def_, MsgName),
  +    ReadFieldFnName = mk_fn(dfp_read_field_def_, MsgName),
       Params = decoder_params(MsgName, AnRes),
       [%% skip_varint_<MsgName>/2,4
        gpb_codegen:format_fn(
  
positive.code:         pass_as_params -> [var_f_n(I) || I <- lists:seq(1, NumFields)];
          pass_as_record -> [?expr(Msg)]
      end.
  
  decoder_field_calls(Bindings, MsgName, []=_MsgDef, _AnRes) ->
      Key = fetch_binding('<Key>', Bindings),
  
negative.code:     InParams = decoder_in_params(Params, MsgName, FieldDef, AnRes),
      Value = ?expr(Value),
      Params2 = updated_merged_params(MsgName, FieldDef, AnRes, Value, Params),
      ReadFieldDefFnName = mk_fn(dfp_read_field_def_, MsgName),
      gpb_codegen:format_fn(
        mk_fn(d_field_, MsgName, FName),
        fun(<<Value:'<N>'/'<T>', Rest/binary>>, Z1, Z2, '<InParams>') ->
  