anchor.diff:                      %% The sibling value was not a CRDT, but a
                       %% (legacy?) un-dotted user opaque value. Add it
                       %% to the list of values to keep.
  -                    Content = convert_to_dict_list(C0),
  -                    MergeAcc#merge_acc{keep=ordsets:add_element(Content, Keep)};
  +                    MergeAcc#merge_acc{keep=[C0|Keep]};
                   {CRDT2, [], []} ->
                       %% The sibling was a CRDT and the CRDT accumulator
                       %% has been updated.
  
positive.code:         error ->
              undefined
      end.
  
  %% @doc Convert a r_content's inner dictionary to a list, and sort it to
  %%      ensure we can do comparsions between r_contents.
  convert_to_dict_list({r_content, Dict, Value}) ->
      {r_content, lists:usort(dict:to_list(Dict)), Value}.
  
  %% @doc Convert a r_content's inner dictionary from a list to a dict.
  convert_from_dict_list({r_content, Dict, Value}) ->
      {r_content, dict:from_list(Dict), Value}.
  
  %% @doc  Promote pending updates (made with the update_value() and
  %%       update_metadata() calls) to this riak_object.
  
negative.code: merge_acc_to_contents(MergeAcc) ->
      #merge_acc{keep=Keep, crdt=CRDTs} = MergeAcc,
      %% Convert the non-CRDT sibling values back to dict metadata values.
      %%
      %% For improved performance, fold_contents/3 does not check for duplicates
      %% when constructing the "Keep" list (eg. using an ordset), but instead
      %% simply prepends kept siblings to the list. Here, we convert Keep into an
      %% ordset equivalent with reverse/unique sort.
      Keep2 = lists:usort(fun compare/2, lists:reverse(Keep)),
      %% Iterate the set of converged CRDT values and turn them into
      %% `r_content' entries.  by generating their metadata entry and
      %% binary encoding their contents. Bucket Types should ensure this
  