anchor.diff:                                               {?MODULE, ns_node_disco_events},
                                                ns_node_disco_events)
                       end)}.
  +
  +watchers() ->
  +    {gen_event:call(ns_config_events,
  +                    {?MODULE, ns_config_events}, watchers),
  +     gen_event:call(ns_node_disco_events,
  +                    {?MODULE, ns_node_disco_events}, watchers)}.
   
   register_watcher(Pid) ->
       gen_event:call(ns_config_events,
  
positive.code: 
  handle_info({'DOWN', MonitorRef, _, _, _},
              #state{watchers = Watchers} = State) ->
      Watchers2 = case lists:keytake(MonitorRef, 2, Watchers) of
                      false -> Watchers;
                      {value, {_Pid, MonitorRef}, WatchersRest} ->
                          erlang:demonitor(MonitorRef, [flush]),
                          WatchersRest
                  end,
  
negative.code: handle_event(_, State) ->
      {ok, State}.
  
  handle_call(watchers, #state{watchers = Watchers} = State) ->
      {ok, Watchers, State};
  
  handle_call({register_watcher, Pid},
              #state{watchers = Watchers} = State) ->
      Watchers2 = case lists:keysearch(Pid, 1, Watchers) of
  