anchor.diff:              {error, {pool_checkout, Error}}
       end.
   
  --spec free_worker(worker())-> ok.                         
  +-spec free_worker(worker())-> ok.
   free_worker({Pool, Worker})->
       poolboy:checkin(Pool, Worker).
   
  
positive.code: 
  -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().                        
  get_worker()->
      do_get_worker(riak_pool_balancer:get_pool()).
  
  
negative.code:     case get_worker() of
          {error, _W} = Error -> Error;
          Worker ->
              try
                  apply_worker_operation(Worker, Fun)
              after
                  riak_pool:free_worker(Worker)
  