anchor.diff:          maps    -> map_update(Var, FieldsValues)
       end.
   
  -mapping_access(Var, RName, FieldName, Opts) ->
  -    case get_records_or_maps_by_opts(Opts) of
  -        records -> record_access(Var, RName, FieldName);
  -        maps    -> map_access(Var, FieldName)
  -    end.
  -
   get_records_or_maps_by_opts(Opts) ->
       Default = false,
       case proplists:get_value(maps, Opts, Default) of
  
positive.code:     %% of the field-number combined with the wiretype.
      %% Unrecognized fields fall back to the more generic decoder-loop
      Params = fetch_binding('<Params>', Bindings),
      gpb_codegen:format_fn(
        mk_fn(dfp_read_field_def_, MsgName),
        fun('<precomputed-binary-match>', Z1, Z2, '<Params>') ->
                '<calls-to-field-decoding>';
           (<<>>, 0, 0, '<Params>') ->
                '<finalize-result>';
           (Other, Z1, Z2, '<Params>') ->
                '<decode-general>'(Other, Z1, Z2, '<Params>')
        end,
        [splice_trees('<Params>', Params),
         repeat_clauses(
           '<precomputed-binary-match>',
           [[replace_tree('<precomputed-binary-match>', BinMatch),
             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,
                                              Opts)),
         replace_term('<decode-general>', mk_fn(dg_read_field_def_, MsgName))]).
  
  format_msg_generic_decoder(Bindings, MsgName, MsgDef, AnRes, Opts) ->
  
negative.code:      end
       || #field{fnum=FNum, type=Type, name=FName}=FieldDef <- MsgDef].
  
  decoder_finalize_result(Params, FFields, MsgName, MsgDef, AnRes, Opts) ->
      case get_field_pass(MsgName, AnRes) of
          pass_as_params ->
              mapping_create(
  