anchor.diff:              map_phase1(Rest, Key, [{rdht_tx_read, Key} | FirstReqs])
       end.
   
  +%% @doc Manipulate tlog to contain the given status for the given key (if present).
  +-spec set_tlog_status_at_key(TLog::tx_tlog:tlog(), Key::client_key(), Status::tx_tlog:tx_status()) -> tx_tlog:tlog().
  +set_tlog_status_at_key(TLog, Key, Status) ->
  +    tx_tlog:update_status_by_key(TLog, Key, {fail, Status}).
  +
   %% @doc Phase 2 uses the the TLog generated by executing the requests of
   %%      phase 1 and executes all requests in their original order upon it.
   %%      Since everything should be in the TLog, this should not cause any
  
positive.code:             {set_change, Key, ToAdd, ToRemove} ->
                  {TLog1, Result1} = single_req(TLog0, {rdht_tx_read, Key}),
                  case Result1 of
                      {ok, OldValue} when erlang:is_list(OldValue) ->
                          case ToAdd =:= [] andalso ToRemove =:= [] of
                              true -> {TLog1, {ok}}; % no op
  
negative.code:                         NewValue2 = util:minus(ToAdd, ToRemove),
                          single_req(TLog1, {rdht_tx_write, Key, encode_value(NewValue2)});
                      {ok, _} ->
                          Error = {fail, not_a_list},
                          {set_tlog_status_at_key(TLog1, Key, Error), Error};
                      X when erlang:is_tuple(X) ->
                          {TLog1, X}
                  end;
              {number_add, Key, X} ->
                  {TLog1, Result1} = single_req(TLog0, {rdht_tx_read, Key}),
                  case Result1 of
                      _ when (not erlang:is_number(X)) ->
                          Error = {fail, not_a_number},
                          {set_tlog_status_at_key(TLog1, Key, Error), Error};
                      {ok, OldValue} when erlang:is_number(OldValue) ->
                          case X == 0 of % also accepts 0.0
                              true -> {TLog1, {ok}}; % no op
  