anchor.diff:  %%%  API
   %%%=========================================================================
   
  --type server_cmd() :: {clear} | {pop} | {push, atom()}.
  +-type server_cmd() :: {clear} | {reset, atom()} | {pop} | {push, atom()}.
       
   -type noreply_type() ::
           {noreply, NewState :: term()} |
  
positive.code:             exit(R)
              
              %% common
      ;   {noreply, NState} when Debug =/= [] ->
              Debug1 = sys:handle_debug(Debug, fun print_event/3, Name, {noreply, NState}),
              loop(Parent, Name, {SrvrState, NState}, Mod, infinity, Debug1, Hib)
      ;   {noreply, NState, Time1} when Debug =/= [] ->
              Debug1 = sys:handle_debug(Debug, fun print_event/3, Name, {noreply, NState}),
              loop(Parent, Name, {SrvrState, NState}, Mod, Time1, Debug1, Hib)
          
      ;   {noreply, NState} ->
              loop(Parent, Name, {SrvrState, NState}, Mod, infinity, [], Hib)
      ;   {noreply, NState, Time1} ->
              loop(Parent, Name, {SrvrState, NState}, Mod, Time1, [], Hib)
              
              %% stopping/system
      ;   {stop, RReason, NState} ->
  
negative.code:     loop(Parent, Name, State, Mod, hibernate, Debug, true).
  
  
  handle_debug([], _Fun, _Name, _Msg) -> [];
  handle_debug(Debug, Fun, Name, Msg) ->
  	sys:handle_debug(Debug, Fun, Name, Msg).
  	
      
  debug_reply(_Name, From, Reply, _State, []) ->
      reply(From, Reply),
      [];    
  debug_reply(Name, {To, Tag}, Reply, State, Debug) ->
      reply({To, Tag}, Reply),
      sys:handle_debug(Debug, fun print_event/3, Name, {out, Reply, To, State} ).
  
     
     
  %%% ---------------------------------------------------
  %%% Send/receive functions
  