anchor.diff:           '<merge-it>',
            do_exprs(fun render_omissible_merger/2,
                     render_field_mergers(MsgName, MandatoryMergings, Opts),
  -                  OptMergings)),
  -       splice_clauses('<msg-undefined-handling>', MsgUndefFnClauses)]).
  -
  -compute_msg_merger_undef_clauses(MsgName, AnRes, Opts) ->
  -    case occurs_as_optional_submsg(MsgName, AnRes) of
  -        false ->
  -            %% If it cannot occur as optional sub message,
  -            %% then it cannot be called with either Prev or New being
  -            %% undefined. Don't layout code for it. Eg. Dialyzer will
  -            %% find it and complain.
  -            [];
  -        true ->
  -            case get_mapping_and_unset_by_opts(Opts) of
  -                Y when Y == records;
  -                       Y == {maps, present_undefined} ->
  -                    [?fn_clause(fun(Prev, undefined) -> Prev end),
  -                     ?fn_clause(fun(undefined, New)  -> New end)];
  -                {maps, omitted} ->
  -                    %% Similar to above: The entire map is always
  -                    %% matched to a variable.
  -                    %% FIXME: also if all field are non-optionals??
  -                    []
  -            end
  -    end.
  +                  OptMergings))]).
   
   format_msg_merger_fnclause_match(_MsgName, [], _Opts) ->
       {?expr(PF), ?expr(_), no_fields};
  
positive.code: splice_trees(Marker, Trees) when is_atom(Marker) ->
      {splice_trees, Marker, Trees}.
  
  splice_clauses(Marker, Clauses) when is_atom(Marker) ->
      {splice_clauses, Marker, Clauses}.
  
  repeat_clauses(Marker, RepetitionReplacements) ->
      {repeat_clauses, Marker, RepetitionReplacements}.
  
  
negative.code: render_field_merger({expr, Expr}) ->
      Expr;
  render_field_merger({merge, {{PF, NF}, Tr, MergeFn}}) ->
      ?expr(if 'PF' /= undefined, 'NF' /= undefined -> 'merge'('PF', 'NF');
               'PF' == undefined -> 'NF';
               'NF' == undefined -> 'PF'
            end,
            [replace_tree('PF', PF),
             replace_tree('NF', NF),
             replace_term('merge', Tr(merge, MergeFn))]);
  