anchor.diff:  -spec update_1(key_value(), tree()) -> {tree(), boolean()}.
   
   update_1({Key, _} = KeyValue, {KeyNo, IsLeaf, KeyValues, Trees}) ->
  -    {ValueFound, KeyPos} = search(Key, KeyValues, KeyNo),
  +    {ValueFound, KeyPos} = binary_search(Key, KeyValues, KeyNo, 1, KeyNo),
       case ValueFound of
           none ->
               case IsLeaf of
  
positive.code:         _ ->
              {none, TreeNo + 1}
      end;
  binary_search(Key, KeyValues, Lower, Upper) ->
      Mid = (Upper + Lower) div 2,
      {MidKey, MidValue} = lists:nth(Mid, KeyValues),
      if
          Key > MidKey ->
              binary_search(Key, KeyValues, Mid + 1, Upper);
          Key < MidKey ->
              binary_search(Key, KeyValues, Lower, Mid - 1);
          true ->
              {MidValue, Mid}
      end.
  
negative.code:     TreeOut = {KeyNo + 1, IsLeaf, insert_into_key_values(KeyValue, KeyValues, []), Trees ++ [nil]},
      TreeOut;
  insert_into_tree({Key, _} = KeyValue, {KeyNo, false = IsLeaf, KeyValues, Trees} = _Tree, KeyNoMin, KeyNoMax) ->
      {ValueFound, TreeUpperPos} = binary_search(Key, KeyValues, KeyNo, 1, KeyNo),
      case ValueFound of
          none ->
              TreeUpper = lists:nth(TreeUpperPos, Trees),
  