anchor.diff:              [];
           (Values) ->
               Values2 = merge_values(Values),
  -            orddict:erase(Module, Values2)
  +            lists:keydelete(Module, 2, Values2)
       end,
       riak_core_metadata:put({riak_kv, mutators}, list, Modifier, []).
   
  
positive.code: register(Module, Priority) ->
      Modifier = fun
          (undefined) ->
              [{Module, Priority}];
          (Values) ->
              Values2 = merge_values(Values),
              orddict:store(Module, Priority, Values2)
      end,
      riak_core_metadata:put({riak_kv, mutators}, list, Modifier).
  
  
negative.code: merge_values([], Acc) ->
      Acc;
  
  merge_values([{Priority, Module} = Mutator | Tail], Acc) ->
      Acc2 = case lists:keyfind(Module, 2, Acc) of
          false ->
              ordsets:add_element(Mutator, Acc);
          {P1, _} when P1 < Priority ->
              Acc;
          Else ->
              ordsets:all_element(Mutator, ordsets:del_element(Else))
      end,
      merge_values(Tail, Acc2).
  
  insert_mutator(Module, Priority, Mutators) ->
      Mutators2 = lists:keydelete(Module, 2, Mutators),
      ordsets:add_element({Priority, Module}, Mutators2).
  
  