anchor.diff:              tester_add_on_nr,
               tester_add_on_nr_maybe_invalid,
               tester_test_and_set_not_existing,
  -            tester_test_and_set
  +            tester_test_and_set,
  +            tester_tlog_add_del_on_list_not_existing,
  +            tester_tlog_add_del_on_list,
  +            tester_tlog_add_del_on_list_maybe_invalid,
  +            tester_tlog_add_on_nr_not_existing,
  +            tester_tlog_add_on_nr,
  +            tester_tlog_add_on_nr_maybe_invalid
              ].
   suite() -> [ {timetrap, {seconds, 200}} ].
   
  
positive.code:     ?equals(api_tx:write(Key, Initial), {ok}),
      prop_add_on_nr2(Key, true, Initial, ToAdd).
  
  -spec prop_add_on_nr2(Key::client_key(), Existing::boolean(), Initial::client_value(), ToAdd::client_value()) -> true | no_return().
  prop_add_on_nr2(Key, Existing, Initial, ToAdd) ->
      if (not erlang:is_number(Initial)) orelse
             (not erlang:is_number(ToAdd)) ->
             ?equals(api_tx:add_on_nr(Key, ToAdd), {fail, not_a_number});
         true ->
             ?equals(api_tx:add_on_nr(Key, ToAdd), {ok}),
             {ok, Number} = api_tx:read(Key),
             case Existing of
                 false -> ?equals(Number, ToAdd);
                 % note: Initial+ToAdd could be float when Initial is not and thus Number is neither
                 true when ToAdd == 0 -> ?equals(Number, Initial);
                 _     -> ?equals(Number, (Initial + ToAdd))
             end
      end.
  
  tester_add_on_nr(_Config) ->
      tester:test(?MODULE, prop_add_on_nr, 3, 10000).
  
  
negative.code: 
  tester_add_on_nr_maybe_invalid(_Config) ->
      tester:test(?MODULE, prop_add_on_nr_maybe_invalid, 3, 10000).
  
  -spec prop_test_and_set2(Key::client_key(), Existing::boolean(), RealOldValue::client_value(), OldValue::client_value(), NewValue::client_value()) -> true | no_return().
  prop_test_and_set2(Key, Existing, RealOldValue, OldValue, NewValue) ->
  