anchor.diff:  -spec init(list()) -> {ok, #state{}}.
   init([MaxConns, ProtoOpts]) ->
   	ReqsTable = ets:new(requests_table, [set, private]),
  +	Queue = queue:new(),
   	{ok, #state{reqs_table=ReqsTable, max_conns=MaxConns,
  -		proto_opts=ProtoOpts}}.
  +		proto_opts=ProtoOpts, queue=Queue}}.
   
   %% @private
   -spec handle_call(_, _, State)
  
positive.code: 	[{SrcPool, SrcNbConns - 1}, {DestPool, DestNbConns}|Pools2].
  
  %% @private
  -spec remove_pid(pid(), pools(), ets:tid(), [{pid(), reference()}])
  	-> {pools(), [{pid(), reference()}]}.
  remove_pid(Pid, Pools, ReqsTable, Queue) ->
  	{MonitorRef, Pool} = ets:lookup_element(ReqsTable, Pid, 2),
  	erlang:demonitor(MonitorRef, [flush]),
  	{Pool, NbConns} = lists:keyfind(Pool, 1, Pools),
  	Pools2 = [{Pool, NbConns - 1}|lists:keydelete(Pool, 1, Pools)],
  	ets:delete(ReqsTable, Pid),
  	case Queue of
  		[] ->
  			{Pools2, Queue};
  		[Client|Queue2] ->
  			gen_server:reply(Client, ok),
  			{Pools2, Queue2}
  	end.
  
negative.code: 	if	AccOptsVsn =/= LisOptsVsn ->
  			{reply, {ugprade, ProtoOpts, LisOptsVsn}, State2};
  		NbConns > MaxConns ->
  			Queue2 = queue:in(From, Queue),
  			{noreply, State2#state{queue=Queue2}};
  		true ->
  			{reply, ok, State2}
  	end;
  