anchor.diff:  -include_lib("eunit/include/eunit.hrl").
   -endif. % TEST
   
  --define(SERVER_CMD_READ_TIMEOUT, 600*1000).
  -
   -export([start_link/1, stop/1,
            update_wedge_state/3, wedge_myself/2]).
   -export([make_listener_regname/1, make_projection_server_regname/1]).
   %% TODO: remove or replace in OTP way after gen_*'ified
  --export([current_state/1, format_state/1]).
  +-export([main2/4, run_append_server/2, run_listen_server/1,
  +         current_state/1, format_state/1]).
   
   -record(state, {
             flu_name        :: atom(),
  
positive.code:     ok.
  
  start_listen_server(S) ->
      proc_lib:spawn_link(fun() -> run_listen_server(S) end).
  
  start_append_server(S, AckPid) ->
      FluPid = self(),
      proc_lib:spawn_link(fun() -> run_append_server(FluPid, AckPid, S) end).
  
  run_listen_server(#state{flu_name=FluName, tcp_port=TcpPort}=S) ->
      register(make_listener_regname(FluName), self()),
  
negative.code:             ok
      end,
      S1 = S0#state{append_pid=AppendPid},
      {ok, ListenPid} = start_listen_server(S1),
  
      Config_e = machi_util:make_config_filename(DataDir, "unused"),
      ok = filelib:ensure_dir(Config_e),
  