anchor.diff:  %%% # handle_info/2
   %%% ----------------------------------------------------------
   
  +%% remove_transport is telling published child to die.
  +handle_info(stop, #state{role = transport} = S) ->
  +    {stop, normal, S};
  +
   %% A service process has died. This is most likely a consequence of
   %% stop_service, in which case the restart will find no config for the
   %% service and do nothing. The entry keyed on the monitor ref is only
   %% removed as a result of the 'DOWN' notification however.
  -handle_info({'DOWN', MRef, process, _, Reason}, State) ->
  +handle_info({'DOWN', MRef, process, _, Reason}, #state{role = server} = S) ->
       [#monitor{service = SvcName} = T] = select([{#monitor{mref = MRef,
                                                             _ = '_'},
                                                    [],
                                                    ['$_']}]),
       queue_restart(Reason, SvcName),
       delete_object(T),
  -    {noreply, State};
  -
  -handle_info({monitor, SvcName, Pid}, State) ->
  +    {noreply, S};
  +
  +handle_info({monitor, SvcName, Pid}, #state{role = server} = S) ->
       monitor(Pid, SvcName),
  -    {noreply, State};
  -
  -handle_info({restart, SvcName}, State) ->
  +    {noreply, S};
  +
  +handle_info({restart, SvcName}, #state{role = server} = S) ->
       restart(SvcName),
  -    {noreply, State};
  -
  -handle_info(restart, State) ->
  +    {noreply, S};
  +
  +handle_info(restart, #state{role = server} = S) ->
       restart(),
  -    {noreply, State};
  +    {noreply, S};
   
   handle_info(Info, State) ->
       ?UNEXPECTED([Info]),
  
positive.code: stop_child(Ref) ->
      case diameter_reg:match(?TRANSPORT_KEY(Ref)) of
          [{_, Pid}] ->  %% tell the transport-specific child to die
              Pid ! {?MODULE, stop};
          [] ->          %% already removed/dead
              ok
      end.
  
negative.code:               ?FAILURE(Reason) -> {error, Reason}
            end,
      proc_lib:init_ack({ok, self(), Res}),
      loop(Res).
  
  %% loop/1
  
  loop({ok, _}) ->
      gen_server:enter_loop(?MODULE, [], #state{role = transport});
  
  loop({error, _}) ->
      ok.  %% die
  
  %%% ----------------------------------------------------------
  %%% # handle_call/2
  