anchor.diff:      Name = get_proc_name(ServerName),
       Parent = get_parent(),
       Debug = debug_options(Name, Options),
  -    loop(Parent, Name, State, Mod, Timeout, Debug).
  +    loop(Parent, Name, {[], State}, Mod, Timeout, Debug, false).    %% TODO new srver state
  +    
   
   
   %%%========================================================================
  
positive.code: %%%  API
  %%%=========================================================================
  
  -callback init(Args :: term()) ->
      {ok, State :: term()} | {ok, State :: term(), timeout() | hibernate} |
      {stop, Reason :: term()} | ignore.
  -callback handle_call(Request :: term(), From :: {pid(), Tag :: term()},
                        State :: term()) ->
      {reply, Reply :: term(), NewState :: term()} |
      {reply, Reply :: term(), NewState :: term(), timeout() | hibernate} |
      {noreply, NewState :: term()} |
      {noreply, NewState :: term(), timeout() | hibernate} |
      {stop, Reason :: term(), Reply :: term(), NewState :: term()} |
      {stop, Reason :: term(), NewState :: term()}.
  -callback handle_cast(Request :: term(), State :: term()) ->
      {noreply, NewState :: term()} |
      {noreply, NewState :: term(), timeout() | hibernate} |
      {stop, Reason :: term(), NewState :: term()}.
  -callback handle_info(Info :: timeout | term(), State :: term()) ->
      {noreply, NewState :: term()} |
      {noreply, NewState :: term(), timeout() | hibernate} |
      {stop, Reason :: term(), NewState :: term()}.
  -callback terminate(Reason :: (normal | shutdown | {shutdown, term()} |
                                 term()),
                      State :: term()) ->
      term().
  -callback code_change(OldVsn :: (term() | {down, term()}), State :: term(),
                        Extra :: term()) ->
      {ok, NewState :: term()} | {error, Reason :: term()}.
  
      
  %%%  -----------------------------------------------------------------
  
negative.code:     gen:start(?MODULE, link, Name, Mod, Args, Options).
  
  
  %% ----------------------------------------------------------------- 
  
  
  call(Name, Category, Request) ->
      case catch gen:call(Name, {'$gen_call', Category}, Request) of
      {ok,Res} ->
          Res;
      {'EXIT',Reason} ->
          exit({Reason, {?MODULE, call, [Name, Request]}})
      end.
  
      
  call(Name, Category, Request, Timeout) ->
      case catch gen:call(Name, {'$gen_call', Category}, Request, Timeout) of
      {ok,Res} ->
          Res;
      {'EXIT',Reason} ->
          exit({Reason, {?MODULE, call, [Name, Request, Timeout]}})
      end.
  
  
  
  %% -----------------------------------------------------------------
  
  cast({global,Name}, Category, Request) ->
      catch global:send(Name, cast_msg(Category, Request)),
      ok;
  cast({via, Mod, Name}, Category, Request) ->
      catch Mod:send(Name, cast_msg(Category, Request)),
      ok;
  cast({Name,Node}=Dest, Category, Request) when is_atom(Name), is_atom(Node) -> 
      do_cast(Dest, Category, Request);
  cast(Dest, Category, Request) when is_atom(Dest) ->
      do_cast(Dest, Category, Request);
  cast(Dest, Category, Request) when is_pid(Dest) ->
      do_cast(Dest, Category, Request).
  
  do_cast(Dest, Category, Request) -> 
      do_send(Dest, cast_msg(Category, Request)),
      ok.
      
  cast_msg(Category, Request) -> {'$gen_cast',Category,Request}.
  
  
  %% -----------------------------------------------------------------
  
  
  reply({To, Tag}, Reply) ->
      catch To ! {Tag, Reply}.
  
  