anchor.diff:                       LP;
                    ({_, RV} = RP, {_, LV} = LP) ->
                        if
  -                         is_list(RV) andalso is_list(LV) ->
  +                         is_list(RV) orelse is_list(LV) ->
                                merge_list_values(RP, LP);
                            true ->
                                RP
  
positive.code: -spec merge_list_values({term(), term()}, {term(), term()}) -> {term(), term()}.
  merge_list_values({_K, RV} = RP, {_, LV} = _LP) when RV =:= LV -> RP;
  merge_list_values({K, RV} = RP, {_, LV} = LP) ->
      RClock = proplists:get_value(?METADATA_VCLOCK, RV, []),
      LClock = proplists:get_value(?METADATA_VCLOCK, LV, []),
      case {vclock:descends(RClock, LClock),
            vclock:descends(LClock, RClock)} of
          {X, X} ->
  
negative.code: 
  
  test_update_config() ->
      ?assertConfigEquals([{test, 1}], update_config_key(test, 1, [])),
      ?assertConfigEquals([{test, 1},
                           {foo, [{k, 1}, {v, 2}]},
                           {xar, true}],
                          update_config_key(test, 1, [{foo, [{k, 1}, {v, 2}]},
                                                      {xar, true},
                                                      {test, [{a, b}, {c, d}]}])).
  
  test_set_kvlist() ->
      {NewPairs, [{foo, FooVal},
  