anchor.diff:  
   loop([],A) ->
     receive
  -    {add, I} ->
  -      loop([I],[I|A]);
  +    {add, {Node, Proc}} when is_pid(Proc) ->
  +      erlang:link(Proc),
  +      loop([{Node,Proc}],[{Node,Proc}|A]);
       {list, Pid} ->
         Pid ! {nodes, []},
         loop([],A);
  
positive.code:           loop([Node],A);
          true ->
            loop([],A)
        end
    end;
  loop(X,A) -> 
    receive 
      {add, I} ->
        loop([I|X], [I|A]);
      {remove, I} -> 
        loop(lists:delete(I,X), lists:delete(I,A));
  
negative.code:         true ->
            loop(X,A)
        end;
      {'EXIT', Pid, _Reason} -> 
        FilterFun = fun({_Node,MPid}) -> MPid /= Pid end,
        loop(lists:filter(FilterFun,X),lists:filter(FilterFun, A));
      Other ->
        io:format("~p loop(X,A) Received unknown message: ~p~n", [?MODULE, Other]),
        loop(X,A)
  