anchor.diff:                                        [replace_tree('<Param>', FieldAccess)]),
                      {FName, FValueExpr}
                  end
  -               || #field{name=FName, occurrence=repeated} <- MsgDef])
  +               || #field{name=FName, occurrence=repeated} <- MsgDef],
  +             Opts)
       end.
   
   format_field_decoders(MsgName, MsgDef, AnRes, Opts) ->
  
positive.code:            replace_tree('<calls-to-field-decoding>', FnCall)]
            || {BinMatch, FnCall} <- decoder_fp(Bindings, MsgName, MsgDef)]),
         replace_tree('<finalize-result>',
                      decoder_finalize_result(Params, MsgName, MsgDef, AnRes)),
         replace_term('<decode-general>', mk_fn(dg_read_field_def_, MsgName))]).
  
  format_msg_generic_decoder(Bindings, MsgName, MsgDef, AnRes) ->
      %% The more general field selecting decoder
      %% Stuff that ends up here: non-minimal varint forms and field to skip
      Key = fetch_binding('<Key>', Bindings),
  
negative.code:     Params = decoder_params(MsgName, AnRes),
      InParams = decoder_in_params(Params, MsgName, FieldDef, AnRes),
      Value = ?expr(Value),
      Params2 = updated_merged_params(MsgName, FieldDef, AnRes, Value, Params,
                                      Opts),
      ReadFieldDefFnName = mk_fn(dfp_read_field_def_, MsgName),
      gpb_codegen:format_fn(
        mk_fn(d_field_, MsgName, FName),
  