anchor.diff:  ///
   /// See also:
   ///
  -///  * [MaterialStateColor], a color that has a `resolve` method that can
  -///    return a different color depending on the state of the widget that it
  -///    is used in.
  +///  * [MaterialProperty], an interface for objects that "resolve" to
  +///    different values depending on a widget's material state.
  +///  * [MaterialStateColor], a [Color] that implements `MaterialStateProperty`
  +///    which is used in APIs that need to accept either a [Color] or a
  +///    `MaterialStateProperty<Color>`.
  +///  * [MaterialStateMouseCursor], a [MouseCursor] that implements `MaterialStateProperty`.
  +///    which is used in APIs that need to accept either a [MouseCursor] or a
  +///    [MaterialStateProperty<MouseCursor>].
  +
   enum MaterialState {
     /// The state when the user drags their mouse cursor over the given widget.
     ///
  
positive.code: ///     }
  ///     return SystemMouseCursors.click;
  ///   }
  ///
  ///   @override
  ///   String get debugDescription => 'ButtonCursor()';
  /// }
  ///
  /// class MyFlatButton extends StatelessWidget {
  ///   @override
  ///   Widget build(BuildContext context) {
  ///     return FlatButton(
  ///       child: Text('FlatButton'),
  ///       onPressed: () {},
  ///       mouseCursor: const ButtonCursor(),
  ///     );
  ///   }
  /// }
  /// ```
  /// {@end-tool}
  ///
  /// This should only be used as parameters when they are documented to take
  /// [MaterialStateMouseCursor], otherwise only the default state will be used.
  ///
  /// This class also predefines several kinds of material state mouse cursors.
  ///
  /// See also:
  ///
  
negative.code:   Color resolve(Set<MaterialState> states) => _resolve(states);
  }
  
  /// Defines a [MouseCursor] whose value depends on a set of [MaterialState]s which
  /// represent the interactive state of a component.
  ///
  /// This kind of [MouseCursor] is useful when the set of interactive
  /// actions a widget supports varies with its state. For example, a
  /// mouse pointer hovering over a disabled [ListTile] should not
  /// display [SystemMouseCursors.click], since a disabled list tile
  /// doesn't respond to mouse clicks. [ListTile]'s default mouse cursor
  /// is a [MaterialStateMouseCursor.clickable], which resolves to
  /// [SystemMouseCursors.basic] when the button is disabled.
  ///
  /// To use a [MaterialStateMouseCursor], you should create a subclass of
  /// [MaterialStateMouseCursor] and implement the abstract `resolve` method.
  ///
  /// {@tool dartpad --template=stateless_widget_scaffold_center}
  ///
  /// This example defines a mouse cursor that resolves to
  /// [SystemMouseCursors.forbidden] when its widget is disabled.
  ///
  /// ```dart imports
  /// import 'package:flutter/rendering.dart';
  /// ```
  ///
  /// ```dart preamble
  /// class ListTileCursor extends MaterialStateMouseCursor {
  ///   @override
  ///   MouseCursor resolve(Set<MaterialState> states) {
  ///     if (states.contains(MaterialState.disabled)) {
  