anchor.diff:  
   -type worker() :: {atom(), pid()}.
   
  --spec call_worker(worker(), fun(), [term()]) -> term().
  -call_worker({_Pool, Worker}, Function, Args)->
  -    apply(riakc_pb_socket , Function, [Worker|Args]).
  -
  --spec get_worker() -> worker().                        
  +-spec call_worker(atom() | worker(), fun(), [term()]) -> term().
  +call_worker({_Pool, WorkerPid}, Function, Args)->
  +    apply(riakc_pb_socket , Function, [WorkerPid|Args]);
  +call_worker(Pool, Function, Args) when is_atom(Pool) ->
  +    case get_worker(Pool) of
  +        {error, _W} = Error -> Error;
  +        Worker ->
  +            try
  +                call_worker(Worker, Function, Args)
  +            after
  +                riak_pool:free_worker(Worker)
  +            end
  +    end.
  +
  +-spec get_worker() -> worker().
   get_worker()->
       do_get_worker(riak_pool_balancer:get_pool()).
   
  
positive.code:     case get_worker() of
          {error, _W} = Error -> Error;
          Worker ->
              try 
                  apply_worker_operation(Worker, Fun)
              after
                  riak_pool:free_worker(Worker)
  
negative.code:             {error, {pool_checkout, Error}}
      end.
  
  -spec free_worker(worker())-> ok.
  free_worker({Pool, Worker})->
      poolboy:checkin(Pool, Worker).
  
  