anchor.diff:              set_slave_key_value(Nodes, Key, Value),
               key_master(Nodes);
           { slave_connect, Pid } ->
  +            choice(Nodes) ! { replicate, Pid },
               key_master(slave_connected(Nodes, Pid));
           { Pid, list_slaves } ->
               Pid ! { list_slaves, Nodes },
  
positive.code: % Keep a key-table in memory with multiple erl instances, one
  % master (single point of failure) and multiple slaves - robust
  % to a failure in the slaves.
  
  -module(distkt).
  -export([start_master/0, start_slave/0, 
  setv/2, getv/1, key_master/1, slave_key_server/1, list_slaves/0]).
  
  % Client functions - set and get key values
  list_slaves() ->
  
negative.code:     end.
  
  down_slave(Nodes, DownPid, Reason) ->
      io:format("slaves ~s down for reason ~s~n", [io_lib:write(DownPid),
                          io_lib:write(Reason)]),
      lists:delete(DownPid, Nodes).
  
  
  