anchor.diff:      _state = stopped;
     }
   
  -  void _forEachConnection(f(PooledConnectionImpl pconn)) {
  +  void _forEachConnection(f(PooledConnectionImpl pconn, int i)) {
       for (int i = _connections.length; --i >= 0;) //reverse since it might be removed
  -      f(_connections[i]);
  +      f(_connections[i], i);
     }
   }
  
positive.code:       for (int i = _connections.length;
            _connections.length > settings.minConnections
            && --i >= 0;) //reverse since it might be removed
          _checkIdleTimeout(_connections[i]);
  
        // This shouldn't be necessary, but should help fault tolerance. 
        _processWaitQueue();
  
negative.code:     }
    }
  
    void _checkIdleTimeout(PooledConnectionImpl pconn, int i) {
      if (pconn._state == available
      && _isExpired(pconn._released ?? pconn._established, settings.idleTimeout)) {
        _destroyConnection(pconn, i);
      }
    }
    
    void _checkIfLeaked(PooledConnectionImpl pconn, int i) {
      if (!pconn._isLeaked
          && pconn._state != available
          && pconn._obtained != null
  