anchor.diff:  
     /// Start bubbling this notification at the given build context.
     ///
  -  /// To receive notifications, use a [NotificationListener].
  +  /// The notification will be delivered to any [NotificationListener] widgets
  +  /// with the appropriate type parameters that are ancestors of the given
  +  /// [BuildContext].
     void dispatch(BuildContext target) {
       assert(target != null); // Only call dispatch if the widget's State is still mounted.
       target.visitAncestorElements(visitAncestor);
  
positive.code: }
  
  /// A widget that listens for [Notification]s bubbling up the tree.
  ///
  /// To dispatch notifications, use the [Notification.dispatch] method.
  class NotificationListener<T extends Notification> extends StatelessWidget {
  
negative.code: ///
  /// Useful if, for instance, you're trying to align multiple descendants.
  ///
  /// To listen for notifications in a subtree, use a
  /// [NotificationListener<LayoutChangedNotification>].
  ///
  /// To send a notification, call [dispatch] on the notification you wish to
  /// send. The notification will be delivered to any [NotificationListener]
  /// widgets with the appropriate type parameters that are ancestors of the given
  /// [BuildContext].
  ///
  /// In the widgets library, only the [SizeChangedLayoutNotifier] class and
  /// [Scrollable] classes dispatch this notification (specifically, they dispatch
  /// [SizeChangedLayoutNotification]s and [ScrollNotification]s respectively).
  