anchor.diff:  
   -spec values(b_tree()) -> values().
   
  -values({_, _, _, 0, nil}) ->
  +values(?B_TREE_EMPTY) ->
       [];
   values({_, _, _, _, {_, _, KeyValues, Trees}}) ->
       values(KeyValues, Trees, []).
  
positive.code: 
  -spec size(b_tree()) -> non_neg_integer().
  
  size({_, _, _, 0, nil}) ->
      0;
  size({_, _, _, _, Tree}) ->
      size_tree(Tree, 0).
  
negative.code: 
  -spec update(key(), value(), b_tree()) -> b_tree().
  
  update(_, _, ?B_TREE_EMPTY = BTree) ->
      erlang:error({empty_tree, BTree});
  update(Key, Value, {BTreeType, KeyNoMin, KeyNoMax, NumberKeyValues, Tree}) ->
      {BTreeType, KeyNoMin, KeyNoMax, NumberKeyValues, update_1({Key, Value}, Tree)}.
  