anchor.diff:  
   -spec lookup(key(), b_tree()) -> 'none' | {'value', value()}.
   
  -lookup(_Key, {_, _, _, 0, nil}) ->
  +lookup(_Key, ?B_TREE_EMPTY) ->
       none;
   lookup(Key, {_, _, _, _, Tree}) ->
       lookup_1(Key, Tree).
  
positive.code: 
  -spec get(key(), b_tree()) -> value().
  
  get(Key, {_, _, _, 0, nil}) ->
      erlang:error({key_not_found, Key});
  get(Key, {_, _, _, _, Tree} = _X) ->
      case lookup_1(Key, Tree) of
          {value, Value} ->
              Value;
  
negative.code: 
  -spec split_tree_non_root(tree(), pos_integer(), key_values(), trees(), pos_integer()) -> {key_values(), trees()}.
  
  split_tree_non_root({KeyNo, IsLeaf, KeyValues, Trees}, KeyNoSplit, KeyValuesLower, TreesLower, TreeNo) ->
      {insert_into_key_values(lists:nth(KeyNoSplit, KeyValues), KeyValuesLower, []),
              lists:sublist(TreesLower, 1, TreeNo - 1) ++
              [
  