anchor.diff:      lists:foreach(fun({W, _}) -> gen_server:reply(W, closed) end, Workers).
   
       
  -handle_call({queue, Item}, From, #q{work_waiters = []} = Q0) ->
  -    Q = Q0#q{size = increment_queue_size(Q0, Item),
  +handle_call({queue, Item, Size}, From, #q{work_waiters = []} = Q0) ->
  +    Q = Q0#q{size = Q0#q.size + Size, % increment_queue_size(Q0, Item),
                   items = Q0#q.items + 1,
  -                queue = queue:in(Item, Q0#q.queue)},
  +                queue = queue:in({Item, Size}, Q0#q.queue)},
       case (Q#q.size >= Q#q.max_size) orelse
               (Q#q.items >= Q#q.max_items) of
       true ->
  
positive.code: 
  -module(couch_work_queue).
  -behaviour(gen_server).
  
  % public API
  -export([new/1, queue/2, dequeue/1, dequeue/2, close/1]).
  
negative.code: 
  handle_info(X, Q) ->
      {stop, X, Q}.
  