anchor.diff:  //TODO implement lifetime. When connection is release if been open for more than lifetime millis, then close the connection, and open another. But need some way to stagger, initial creation, so they don't all expire at the same time.
   
   abstract class Pool {
  -	factory Pool(String uri, {int timeout, int min: 2, int max: 10})
  -		=> new _Pool(uri, timeout: timeout, min: min, max: max);
  +	factory Pool(String uri, {int timeout, int min, int max, pg.TypeConverter typeConverter})
  +		= _Pool;
   
   	/// Returns once the specified minimum number of connections have connected successfully.
   	Future start();
  
positive.code: 	int get _count => _connections.length + _connecting;
  	int _connecting = 0;
  
  	_Pool(this._uri, {int timeout, int min: 2, int max: 10})
  		: _timeout = timeout,
  		  _min = min,
  		  _max = max;
  
  	Future start() {
  		var futures = new List<Future>(_min);
  
negative.code: 	final int _timeout;
  	final int _min;
  	final int _max;
  	final pg.TypeConverter _typeConverter;
  	final _connections = new List<_PoolConnection>();
  	final _available = new List<_PoolConnection>();
  	final _waitingForRelease = new Queue<Completer>();
  