anchor.diff:                          NewValue2 = util:minus(ToAdd, ToRemove),
                           single_req(TLog1, {rdht_tx_write, Key, encode_value(NewValue2)});
                       {ok, _} ->
  -                        % need to manipulate tlog to contain this error
  -                        TLog2 = tx_tlog:update_status_by_key(TLog1, Key, {fail, not_a_list}),
  -                        {TLog2, {fail, not_a_list}};
  +                        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
  
positive.code:                     {ok, Old} ->
                          single_req(TLog1, {rdht_tx_write, Key, encode_value(New)});
                      {ok, RealOldValue} ->
                          % need to manipulate tlog to contain this error
                          TLog2 = tx_tlog:update_status_by_key(TLog1, Key, {fail, {key_changed, RealOldValue}}),
                          {TLog2, {fail, {key_changed, RealOldValue}}};
                      X when erlang:is_tuple(X) ->
                          {TLog1, X}
                  end
  
negative.code:             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
  