anchor.diff:      KeepNodeRefs = [NR || NR = {N, _} <- NodeRefs, not lists:member(N, Nodes)],
       {ok, State#subscribe_all_state{noderefs=NewNodeRefs ++ KeepNodeRefs}}.
   
  +
   handle_info(_Msg, State) ->
       {ok, State}.
  +
   
   terminate(Reason, #subscribe_all_state{noderefs=NodeRefs, name=Name}) ->
       error_logger:info_msg("~p removing subscribe_all handler ~p: ~p~n",
  
positive.code: 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}};
  
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},
  