anchor.diff:                          ValueAfterWrite = rdht_tx:decode_value(tx_tlog:get_entry_value(OldEntry)),
                           {[{ok}, hd(NRes)], [{write, element(2, Req), ValueAfterWrite}, Req]}
                   end,
  -            case element(1, Req) of
  -                read when element(3, Req) =:= random_from_list ->
  +            case Req of
  +                {read, _Key0, random_from_list} ->
                       case NRes of
                           [{fail, _}] ->
                               ?equals(ExpResAlone, element(2, api_tx:req_list(ReqsAlone)));
  -                        [{ok, _RandomVal}] ->
  +                        [{ok, {_RandomVal, _ListLength}}] ->
                               % the only thing guaranteed here is that it must also be {ok, _}
                               case length(ExpResAlone) of
                                   2 -> ?equals_pattern(element(2, api_tx:req_list(ReqsAlone)), [{ok}, {ok, _}]);
  
positive.code:                             ?equals(tx_tlog:get_entry_value(OldEntry),
                                      tx_tlog:get_entry_value(NewEntry))
                      end;
                  read when element(3, Req) =:= random_from_list ->
                      case hd(NRes) of
                          {ok, {RandomVal, ListLength}} ->
                              NewValue =
  
negative.code:                             ?equals(tx_tlog:get_entry_value(OldEntry),
                                      tx_tlog:get_entry_value(NewEntry))
                      end;
                  {add_del_on_list, _Key, _ToAdd, _ToRemove} ->
                      case hd(NRes) of
                          {ok} ->
                              ?equals(?value,
  