anchor.diff:  %% flatten(List, Tail)
   %%  Flatten a list, adding optional tail.
   
  --spec flatten([_]) -> [_].
  +-spec flatten([term()]) -> [term()].
   
   flatten(List) when is_list(List) ->
       do_flatten(List, []).
   
  --spec flatten([_], [_]) -> [_].
  +-spec flatten([term()], [term()]) -> [term()].
   
   flatten(List, Tail) when is_list(List), is_list(Tail) ->
       do_flatten(List, Tail).
  
positive.code: 
  %% reverse(rmerge(reverse(A),reverse(B))) is equal to merge(I,A,B).
  
  -spec rmerge([_], [_]) -> [_].
  
  rmerge(T1, []) ->
      T1;
  
negative.code: %% rmerge3(X, Y, Z) -> L
  %%  merges three reversed sorted lists X, Y and Z
  
  -spec rmerge3([X], [Y], [Z]) -> [(X | Y | Z)].
  
  rmerge3(L1, [], L3) ->
     rmerge(L1, L3);
  