anchor.diff:  
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %% Some types.
  +
  +% -type iterator() :: none | {key(), value(), tree()}.
   
   -type key() :: any().
   -type keys() :: [any(), ...].
  
positive.code: 
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% Data structure:
  %% - {BTreeType, Minimum, Maximum, NumberKeyValues, Tree}, 
  %%   where `Tree' is composed of :
  %%   - {KeyNo, IsLeaf, [{Key, Value}], [Tree]}.
  
  
negative.code: %%   traversing the remaining entries, or the atom `none' if no entries
  %%   remain.
  %%
  %% - number_key_values(B): returns the number of key / value pairs in the
  %%   B-tree / B*-tree B as an integer. Returns 0 (zero) if the
  %%   B-tree / B*-tree B is empty.
  %%
  %% - size(B): returns the number of nodes in the B-tree / B*-tree B
  %%   as an integer. Returns 0 (zero) if the B-tree / B*-tree B is empty.
  %%
  %% - smallest(B): returns {K, V}, where K is the smallest key in
  %%   B-tree / B*-tree B, and V is the value associated with K in B.
  %%   Assumes that the B-tree / B*-tree B is nonempty.
  %%
  %% - to_list(B): returns an ordered list of {Key, Value} pairs
  %%   for all keys in B-tree / B*-tree B.
  
  %% - update(K, V, B): updates key K to value V in B-tree / B*-tree B;
  %%   returns the new tree. Assumes that the key is present in the tree.
  %%
  %% - values(B): returns the list of values for all keys in
  %%   B-tree / B*-tree B, sorted by their corresponding keys.
  %%   Duplicates are not removed.
  %%
  
  