anchor.diff:  %% beware that if it's called from one of restarted childs it won't
   %% work. This can be allowed with further work here.
   pull_plug(Fun) ->
  -    GoodChildren = [Id || {Id, _, _, _, _, _} <- good_children()],
  +    FullGoodChildren = good_children(),
  +    GoodChildren = [Id || {Id, _, _, _, _, _} <- FullGoodChildren],
       BadChildren = [Id || {Id, _, _, _, _, _} <- bad_children()],
       error_logger:info_msg("~p plug pulled.  Killing ~p, keeping ~p~n",
                             [?MODULE, BadChildren, GoodChildren]),
  
positive.code: -module(ns_server_sup).
  
  -behaviour(supervisor).
  
  -export([start_link/0]).
  
  
negative.code:                           R = supervisor:restart_child(?MODULE, C),
                            error_logger:info_msg("Restarting ~p: ~p~n", [C, R])
                    end,
                    BadChildren),
      %% grey childrens don't need to be down during node renaming, but
      %% need to be restarted to acquire or re-acquire correct state.
      GreyChildrenIDs = [ns_doctor               % ns doctor needs to grab & store health info of new node
                         ],
      lists:foreach(fun (Id) ->
                            {Id, ok} = {Id, supervisor:terminate_child(?MODULE, Id)},
                            R = supervisor:restart_child(?MODULE, Id),
                            ?log_info("Restarted grey child ~p: ~p~n", [Id, R])
                    end,
                    GreyChildrenIDs).
  
  bad_bucket_children(Bucket) ->
      [{{stats_collector, Bucket}, {stats_collector, start_link, [Bucket]},
  