anchor.diff:  foldl(DB, Fun, Acc, all, MaxNum) ->
       foldl(DB, Fun, Acc, {interval, '[', ets:first(DB), ets:last(DB), ']'},
             MaxNum);
  -foldl(DB, Fun, Acc, {interval, '(', Start, End, RBr}, MaxNum) -> 
  +foldl(DB, Fun, Acc, {interval, '(', Start, End, RBr}, MaxNum) ->
       foldl(DB, Fun, Acc, {interval, '[', ets:next(DB, Start), End, RBr}, MaxNum);
  -foldl(DB, Fun, Acc, {interval, LBr, Start, End, ')'}, MaxNum) -> 
  +foldl(DB, Fun, Acc, {interval, LBr, Start, End, ')'}, MaxNum) ->
       foldl(DB, Fun, Acc, {interval, LBr, Start, ets:prev(DB, End), ']'}, MaxNum);
   foldl(DB, Fun, Acc, {interval, '[', Start, End, ']'}, MaxNum) ->
       case ets:lookup(DB, Start) of
  
positive.code: foldr(_DB, _Fun, Acc, {interval, _, _End, '$end_of_table', _}, _MaxNum) -> Acc;
  foldr(_DB, _Fun, Acc, {interval, _, '$end_of_table', _Start, _}, _MaxNum) -> Acc;
  foldr(_DB, _Fun, Acc, {interval, _, End, Start, _}, _MaxNum) when Start < End -> Acc;
  foldr(DB, Fun, Acc, {element, El}, _MaxNum) -> 
      case ets:lookup(DB, El) of
          [] ->
              Acc;
  
negative.code: foldr(DB, Fun, Acc, all, MaxNum) ->
      foldr(DB, Fun, Acc, {interval, '[', ets:first(DB), ets:last(DB), ']'},
            MaxNum);
  foldr(DB, Fun, Acc, {interval, '(', End, Start, RBr}, MaxNum) ->
      foldr(DB, Fun, Acc, {interval, '[', ets:next(DB, End), Start, RBr}, MaxNum);
  foldr(DB, Fun, Acc, {interval, LBr, End, Start, ')'}, MaxNum) ->
      foldr(DB, Fun, Acc, {interval, LBr, End, ets:prev(DB, Start), ']'}, MaxNum);
  foldr(DB, Fun, Acc, {interval, '[', End, Start, ']'}, MaxNum) ->
      case ets:lookup(DB, Start) of
  