anchor.diff:  iterator_1({KeyValues, Subtrees, nil}, Iterator) ->
       {_, _, KeyValues_1, Subtrees_1} = lists:nth(1, Subtrees),
       iterator_1({KeyValues_1, Subtrees_1, nil}, [{KeyValues, Subtrees, nil} | Iterator]);
  -iterator_1({KeyValues, Subtrees, State}, Iterator) when is_list(Subtrees) ->
  -    {_, _, KeyValues_1, Subtrees_1} = lists:nth(1, Subtrees),
  -    iterator_1({KeyValues_1, Subtrees_1, State}, [{KeyValues, Subtrees, State} | Iterator]);
   iterator_1({KeyValues, SubtreesKey, {StateTarget, _, _, LookupFunction} = State}, Iterator) ->
       Subtrees = LookupFunction(StateTarget, lookup, SubtreesKey),
       {_, _, KeyValues_1, Subtrees_1Key} = lists:nth(1, Subtrees),
  
positive.code:     {_, Pos} = binary_search(Key, KeyValues, KeyNo, 1, KeyNo, SortFunction),
      {KeyNo_1, SubtreeNo_1, KeyValues_1, Subtrees_1} = lists:nth(Pos, Subtrees),
      iterator_from_1(Key, {KeyNo_1, SubtreeNo_1, KeyValues_1, Subtrees_1}, [{lists:sublist(KeyValues, Pos, KeyNo), lists:sublist(Subtrees, Pos, SubtreeNo), nil} | Iterator], SortFunction, nil);
  iterator_from_1(Key, {KeyNo, SubtreeNo, KeyValues, Subtrees}, Iterator, SortFunction, State) when is_list(Subtrees) ->
      {_, Pos} = binary_search(Key, KeyValues, KeyNo, 1, KeyNo, SortFunction),
      {KeyNo_1, SubtreeNo_1, KeyValues_1, Subtrees_1} = lists:nth(Pos, Subtrees),
      iterator_from_1(Key, {KeyNo_1, SubtreeNo_1, KeyValues_1, Subtrees_1}, [{lists:sublist(KeyValues, Pos, KeyNo), lists:sublist(Subtrees, Pos, SubtreeNo), State} | Iterator], SortFunction, State);
  iterator_from_1(Key, {KeyNo, SubtreeNo, KeyValues, SubtreesKey}, Iterator, SortFunction, {StateTarget, _, _, LookupFunction} = State) ->
      Subtrees = LookupFunction(StateTarget, lookup, SubtreesKey),
      {_, Pos} = binary_search(Key, KeyValues, KeyNo, 1, KeyNo, SortFunction),
  
negative.code:                 SubtreeNo,
                  KeyValues,
                      lists:sublist(Subtrees, 1, KeyPos - 1) ++ [delete_1(Key, TreeXC, SubtreeNoMin, KeyNoMax, SortFunction, nil)] ++ lists:sublist(Subtrees, KeyPos + 1, SubtreeNo)
              }
      end;
  delete_1_3(Key, {KeyNo, SubtreeNo, KeyValues, SubtreesKey}, SubtreeNoMin, KeyNoMax, KeyPos, SortFunction, {StateTarget, DeleteFunction, InsertFunction, LookupFunction} = State) ->
  