anchor.diff:  
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
  +skip(S) when is_list(S) ->
  +    throw({skip, S}).
  +
  +%% skip(F, A) when is_list(F) andalso is_list(A) ->
  +%%     skip(f(F, A)).
  +
  +f(F, A) ->
  +    lists:flatten(io_lib:format(F, A)).
  +
  +connect_failed_str(Reason) ->
  +    f("Connect failed: ~w", [Reason]).
  +
   formated_timestamp() ->
       format_timestamp(os:timestamp()).
   
  
positive.code:     shutdown_common(false).
  
  shutdown_common(Active) ->
      P = sort_server(Active),
      io:format("[~w]Sort server port: ~p\n", [self(), P]),
  
  
      do_sort(P, []),
  
negative.code:     end.
  
  do_sort(P, List0) ->
      p("Sort: "
        "~n   ~p", [List0]),
      List = [El++"\n" || El <- List0],
      S = case gen_tcp:connect(localhost, P, [{packet,line}]) of
              {ok, Socket} ->
                  Socket;
              {error, eaddrnotavail = Reason} ->
                  skip(connect_failed_str(Reason))
          end,
      send_lines(S, List),
      ok = gen_tcp:shutdown(S, write),
      Lines = collect_lines(S, true),
      p("Collected: "
        "~n   ~p", [Lines]),
      SortedLines = lists:sort(List),
      p("Sorted: "
        "~n   ~p", [SortedLines]),
      Lines = SortedLines,
      ok = gen_tcp:close(S).
  
  