anchor.diff:  -include_lib("eunit/include/eunit.hrl").
   
   -record(st, {
  -    workers = []
  +    workers = ets:new(workers, [private, {keypos,2}])
   }).
   
   start_link() ->
  
positive.code:     {noreply, St}.
  
  terminate(_Reason, St) ->
      [exit(Pid,kill) || {Pid, _, _} <- St#st.workers],
      ok.
  
  code_change(_OldVsn, St, _Extra) ->
  
negative.code: 
  %% internal
  
  add_worker(Worker, Tab) ->
      ets:insert(Tab, Worker), Tab.
  
  remove_worker(Ref, Tab) ->
      ets:delete(Tab, Ref), Tab.
  
  find_worker(Ref, Tab) ->
      case ets:lookup(Tab, Ref) of [] -> false; [Worker] -> Worker end.
  
  notify_caller({Caller, Ref}, Reason) ->
      Caller ! {Ref, {rexi_EXIT, Reason}}.
  