anchor.diff:  %% union(OrdSet1, OrdSet2) -> OrdSet
   %%  Return the union of OrdSet1 and OrdSet2.
   
  --spec union(ordset(_), ordset(_)) -> ordset(_).
  +-spec union(ordset(T1), ordset(T2)) -> ordset(T1 | T2).
   
   union([E1|Es1], [E2|_]=Set2) when E1 < E2 ->
       [E1|union(Es1, Set2)];
  
positive.code: %% del_element(Element, OrdSet) -> OrdSet.
  %%  Return OrdSet but with Element removed.
  
  -spec del_element(term(), ordset(_)) -> ordset(_).
  
  del_element(E, [H|Es]) when E > H -> [H|del_element(E, Es)];
  del_element(E, [H|_]=Set) when E < H -> Set;
  
negative.code: %% fold(Fun, Accumulator, OrdSet) -> Accumulator.
  %%  Fold function Fun over all elements in OrdSet and return Accumulator.
  
  -spec fold(fun((T, term()) -> term()), term(), ordset(T)) -> term().
  
  fold(F, Acc, Set) ->
      lists:foldl(F, Acc, Set).
  