anchor.diff:  handle_cast(_Msg, S) ->
       {noreply, S}.
   
  +handle_info({adjust_down_list, FLU}, #state{active_unfit=ActiveUnfit}=S) ->
  +    io:format(user, "ADJUST: ~w: {adjust_down_list, ~w}\n", [S#state.my_flu_name,FLU]),
  +    NewUnfit = make_unfit_list(S),
  +    Added_to_new     = NewUnfit -- ActiveUnfit,
  +    Dropped_from_new = ActiveUnfit -- NewUnfit,
  +    case {lists:member(FLU,Added_to_new), lists:member(FLU,Dropped_from_new)} of
  +        {true, true} ->
  +            error({bad, ?MODULE, ?LINE, FLU, ActiveUnfit, NewUnfit});
  +        {true, false} ->
  +            {noreply, S#state{active_unfit=lists:usort(ActiveUnfit ++ [FLU])}};
  +        {false, true} ->
  +            {noreply, S#state{active_unfit=ActiveUnfit -- [FLU]}};
  +        {false, false} ->
  +            {noreply, S}
  +    end;
   handle_info(_Info, S) ->
       {noreply, S}.
   
  
positive.code:                         [Probs|Acc]
                  end
          end,
      QQ2 = (catch lists:flatten(map_fold(F, [], S#state.pending_map))),
      io:format(user, "QQ2 ~w: ~p\n", [S#state.my_flu_name, QQ2]),
      {todo_finish, QQ2}.
  
  store_in_map(Map, Name, Now, Down, Props) ->
      Val = {Now, Down, Props},
      map_set(Name, Map, Name, Val).
  
  digraph_magic(All_list, HosedAnnotations) ->
      G = digraph:new(),
      [digraph:add_vertex(G, V) || V <- All_list],
      [digraph:add_edge(G, V1, V2) || {V1, problem_with, V2} <- HosedAnnotations],
      calc_magic_down(lists:sort(digraph:vertices(G)), G).
  
  send_spam(NewMap, DontSendList, MembersDict, #state{my_flu_name=MyFluName}) ->
      Send = fun(FLU, #p_srvr{address=Host, port=TcpPort}) ->
  
negative.code:     end.
  
  do_map_change(NewMap, DontSendList, MembersDict,
                #state{my_flu_name=_MyFluName, pending_map=OldMap}=S) ->
      send_spam(NewMap, DontSendList, MembersDict, S),
      ChangedServers = find_changed_servers(OldMap, NewMap),
      DelayTimeMS = 300,                          % TODO make configurable!
      [erlang:send_after(DelayTimeMS, self(), {adjust_down_list, FLU}) ||
          FLU <- ChangedServers],
      %% _OldMapV = map_value(OldMap),
      %% _MapV = map_value(NewMap),
      %% io:format(user, "TODO: ~w async tick trigger/scheduling... ~w for:\n"
      %%           "    ~p\n    ~p\n",[_MyFluName,ChangedServers,_OldMapV,_MapV]),
      S#state{pending_map=NewMap, members_dict=MembersDict}.
  
  find_changed_servers(OldMap, NewMap) ->
  