anchor.diff:      _notifyListeners();
     }
   
  -  void dispose() {
  -    if (_disposed) {
  -      throw StateError(
  -        'Called disposed on a ProviderStateOwner that was already disposed',
  -      );
  -    }
  -    _disposed = true;
  -
  -    assert(notifyListenersLock == null, '');
  -    // TODO: reverse?
  -    for (final entry in _providerStatesSortedByDepth) {
  -      notifyListenersLock = entry.value;
  -      _runGuarded(entry.value.dispose);
  -      notifyListenersLock = null;
  -    }
  -  }
  -
  +  /// Used by providers when their state has changed and they want to notify listeners.
  +  ///
  +  /// If this is the first time a provider wants to notify listeners since the
  +  /// last [update] call, this will call [_markNeedsUpdate].
  +  ///
  +  /// See also [ProviderStateBase.markNeedsNotifyListeners].
     void _scheduleNotification() {
       if (_disposed) {
         throw StateError(
  
positive.code:   final T value;
  }
  
  class _ProviderStateReader {
    _ProviderStateReader(this._origin, this._owner);
  
  
negative.code:     return result;
    }
  
    @visibleForTesting
    void scheduleNotification() => _scheduleNotification();
  
    ProviderStateBase<Subscription, ListeningValue,
  