anchor.diff:      case get_mapping_and_unset_by_opts(Opts) of
           X when X == records;
                  X == {maps, present_undefined} ->
  -            P = mapping_match(MsgName, PFields, Opts),
  +            PFields1 = [{FName,PFVar} || {FName,PFVar} <- PFields,
  +                                         PFVar /= none],
  +            P = mapping_match(MsgName, PFields1, Opts),
               N = mapping_match(MsgName, NFields, Opts),
               {P, N, {pr, Infos}};
           {maps, omitted} ->
               {OptInfos, MandInfos} = key_partition_on_optionality(4, Infos),
               PMsg = ?expr(PMsg),
               NMsg = ?expr(NMsg),
  -            P = map_match([{FName, PFVar} || {FName,PFVar,_,_} <- MandInfos]),
  +            P = map_match([{FName, PFVar} || {FName,PFVar,_,_} <- MandInfos,
  +                                             PFVar /= none]),
               N = map_match([{FName, NFVar} || {FName,_,NFVar,_} <- MandInfos]),
               PB = match_bind_var(P, PMsg),
               NB = match_bind_var(N, NMsg),
  
positive.code:                 {_,  _} -> {PB, NB, XInfo}
              end
      end.
  
  compute_msg_field_mergers({pr, XInfo}, MsgName, AnRes) ->
      Merges =
  
negative.code:                                                MsgName, AnRes),
      {MandMergs, reshape_cases_for_maps_find(OptMergs, PMsg, NMsg)}.
  
  format_field_merge_expr(#?gpb_field{name=FName, occurrence=Occur}=Field,
                          PF, NF, MsgName, AnRes)->
      Transforms = [replace_tree('PF', PF),
                    replace_tree('NF', NF)],
      case classify_field_merge_action(Field) of
          overwrite when Occur == required ->
              {required, {PF, NF}};
          overwrite ->
              {overwrite, {PF, NF}};
          seqadd ->
  