anchor.diff:          {empty, Waiting2} ->
               Busy2 = State#state.busy -- [Worker],
               Free2 = [Worker | State#state.free];
  -        {{value, {Pid, _} = From}, Waiting2} ->
  -            monitor_use(Pid, Worker, Callers),
  +        {{value, From}, Waiting2} ->
  +            monitor_client(Callers, Worker, From),
               gen_server:reply(From, {ok, Worker}),
               Busy2 = State#state.busy,
               Free2 = State#state.free
  
positive.code:    end.
  
  handle_info({'EXIT', Pid, _Reason}, #state{busy = Busy, free = Free, waiting = Waiting, callers = Callers} = State) ->
      demonitor_worker(Callers,Pid),
      case Free -- [Pid] of
      Free ->
          case Busy -- [Pid] of
  
negative.code: 
  
  handle_cast({release_worker, Worker}, #state{waiting = Waiting, callers = Callers} = State) ->
      demonitor_client(Callers, Worker),
      case is_process_alive(Worker) andalso
          lists:member(Worker, State#state.busy) of
      true ->
  