anchor.diff:      end;
   start_link(Args, true)
     when is_list(Args) ->
  -    case gen_server:start_link(?MODULE, [], []) of
  -        {ok, Pid} ->
  -            case gen_server:call(Pid, {setup,Args}, infinity) of
  -                ok ->
  -                    {ok, Pid};
  -                {error, Reason} ->
  -                    stop(Pid),
  -                    {error, Reason}
  -            end;
  -        Other ->
  -            Other
  -    end.
  -
  --spec stop(pid()) -> ok.
  -stop(Pid)
  -  when is_pid(Pid) ->
  -    gen_server:cast(Pid, stop).
  +    gen_server:start_link(?MODULE, Args, []).
  +
   
   -spec call(pid(),term()) -> term().
   call(Pid, Command)
     when is_pid(Pid) ->
       gen_server:call(Pid, Command).
   
  --spec cast(pid(),term()) -> ok.
  -cast(Pid, Command)
  -  when is_pid(Pid) ->
  -    gen_server:cast(Pid, Command).
  -
   %% == behaviour: gen_server ==
   
   init(Args) ->
  
positive.code:          handle_call/3, handle_cast/2, handle_info/2]).
  
  %% -- private --
  
  -record(state, {
            handle :: tuple(),
            auth :: boolean()
           }).
  
  %% == public ==
  
  -spec start_link([property()]) -> {ok,pid()}|ignore|{error,_}.
  start_link(Args) ->
      start_link(Args, false). % for poolboy
  
  -spec start_link([property()],boolean()) -> {ok,pid()}|ignore|{error,_}.
  start_link(Args, false)
  
negative.code: -include("internal.hrl").
  
  %% -- public --
  -export([start_link/1, start_link/2]).
  -export([call/2]).
  
  %% -- behaviour: gen_server --
  -behaviour(gen_server).
  