anchor.diff:  handle_call({init_nodes, _}, State = #subscribe_all_state{noderefs=[_|_]}) ->
       {ok, ok, State}.
   
  +
   handle_event(Event, State = #state{func=Fun, func_state=FS}) ->
       NewState = Fun(Event, FS),
       {ok, State#state{func_state=NewState}};
  
positive.code:                         {init_nodes, ns_node_disco:nodes_actual_proper()}),
      Ref.
  
  unsubscribe(Name, Ref) ->
      gen_event:delete_handler(Name, {?MODULE, Ref}, unsubscribed).
  
  %% We don't need the name for this because it's in the state of the
  %% handler installed on ns_node_disco_events
  
negative.code: -export([code_change/3, init/1, handle_call/2, handle_event/2, handle_info/2,
           terminate/2]).
  
  -export([subscribe/1, subscribe/3,
           subscribe_all/1, subscribe_all/3,
           unsubscribe/2, unsubscribe_all/1]).
  
  
  %%
  %% API
  %%
  subscribe(Name) ->
      subscribe(Name, msg_fun(self()), ignored).
  
  
  subscribe(Name, Fun, State) ->
      Ref = make_ref(),
      ok = gen_event:add_sup_handler(Name, {?MODULE, Ref},
                                     #state{func=Fun, func_state=State}),
      Ref.
  
  
  %% Subscribe to the same event on all nodes
  subscribe_all(Name) ->
      subscribe_all(Name, msg_fun(self()), ignored).
  
  
  subscribe_all(Name, Fun, State) ->
      Ref = make_ref(),
      ok = gen_event:add_sup_handler(ns_node_disco_events, {?MODULE, Ref},
  