anchor.diff:  import 'selector.dart' show Selector;
   
   /// {@template provider.consumer}
  -/// Obtains [Provider<T>] from its ancestors and pass its value to [builder].
  -///
  -/// The widget [Consumer] doesn't do any fancy work. It just calls [Provider.of]
  -/// in a new widget, and delegate its `build` implementation to [builder].
  +/// Obtains [Provider<T>] from its ancestors and passes its value to [builder].
  +///
  +/// The [Consumer] widget doesn't do any fancy work. It just calls [Provider.of]
  +/// in a new widget, and delegates its `build` implementation to [builder].
   ///
   /// [builder] must not be null and may be called multiple times (such as when
  -/// provided value change).
  -///
  -/// The wiget [Consumer] has two main purposes:
  +/// the provided value change).
  +///
  +/// The [Consumer] widget has two main purposes:
   ///
   /// * It allows obtaining a value from a provider when we don't have a
  -///   [BuildContext] that is a descendant of the said provider, and therefore
  +///   [BuildContext] that is a descendant of said provider, and therefore
   ///   cannot use [Provider.of].
   ///
  -/// Such scenario typically happens when the widget that creates the provider
  +/// This scenario typically happens when the widget that creates the provider
   /// is also one of its consumers, like in the following example:
   ///
   /// ```dart
  
positive.code: /// In that example, `BarWidget` is built outside of [builder]. Then, the
  /// `BarWidget` instance is passed to [builder] as the last parameter.
  ///
  /// This means that when [builder] is called again with new values, new
  /// instance of `BarWidget` will not be recreated.
  /// This let Flutter knows that it doesn't have to rebuild `BarWidget`.
  /// Therefore in such configuration, only `FooWidget` will rebuild
  /// if `Foo` changes.
  ///
  /// ## Note:
  ///
  /// The widget [Consumer] can also be used inside [MultiProvider]. To do so, it
  /// must returns the `child` passed to [builder] in the widget tree it creates.
  ///
  /// ```dart
  /// MultiProvider(
  
negative.code: /// [Text]. It will also update the [Text] whenever the value `foo` changes.
  ///
  ///
  /// * It helps with performance optimisation by providing more granular rebuilds.
  ///
  /// Unless `listen: false` is passed to [Provider.of], the widget
  /// associated with the [BuildContext] passed to [Provider.of] will rebuild
  /// whenever the obtained value changes. This is the expected behavior,
  /// but sometimes it may rebuild more widgets than needed.
  ///
  /// Here's an example:
  ///
  