anchor.diff:    /// stream had closed.
     ///
     /// The returned future completes with the result of calling
  -  /// `cancel`.
  +  /// `cancel` on the subscription to the source stream.
     ///
     /// After calling `cancel`, no further events can be requested.
     /// None of [lookAhead], [next], [peek], [rest], [skip], [take] or [cancel]
     /// may be called again.
     Future? cancel({bool immediate = false}) {
  -    if (_isClosed) throw _failClosed();
  +    _checkNotClosed();
       _isClosed = true;
   
       if (!immediate) {
  
positive.code:   /// of data collected so far. That is, the returned
    /// list may have fewer than [count] elements.
    Future<List<T>> take(int count) {
      if (count < 0) throw RangeError.range(count, 0, null, 'count');
      if (!_isClosed) {
        var request = _TakeRequest<T>(count);
        _addRequest(request);
        return request.future;
      }
      throw _failClosed();
    }
  
    /// Requests a transaction that can conditionally consume events.
  
negative.code:   /// }
    /// ```
    StreamQueueTransaction<T> startTransaction() {
      _checkNotClosed();
  
      var request = _TransactionRequest(this);
      _addRequest(request);
  