anchor.diff:  /// A material expansion panel list that lays out its children and animates
   /// expansions.
   ///
  +/// {@tool snippet --template=stateful_widget_material}
  +///
  +/// Here is a simple example of how to implement ExpansionPanelList.
  +///
  +/// ```dart preamble
  +/// // stores ExpansionPanel state information
  +/// class Item {
  +///   Item({
  +///     this.expandedValue,
  +///     this.headerValue,
  +///     this.isExpanded = false,
  +///   });
  +///
  +///   String expandedValue;
  +///   String headerValue;
  +///   bool isExpanded;
  +/// }
  +///
  +/// List<Item> generateItems(int numberOfItems) {
  +///   return List.generate(numberOfItems, (int index) {
  +///     return Item(
  +///       headerValue: 'Panel $index',
  +///       expandedValue: 'This is item number $index',
  +///     );
  +///   });
  +/// }
  +/// ```
  +///
  +/// ```dart
  +/// List<Item> _data = generateItems(8);
  +///
  +/// @override
  +/// Widget build(BuildContext context) {
  +///   return SingleChildScrollView(
  +///     child: Container(
  +///       child: _buildPanel(),
  +///     ),
  +///   );
  +/// }
  +///
  +/// Widget _buildPanel() {
  +///   return ExpansionPanelList(
  +///     expansionCallback: (int index, bool isExpanded) {
  +///       setState(() {
  +///         _data[index].isExpanded = !isExpanded;
  +///       });
  +///     },
  +///     children: _data.map<ExpansionPanel>((Item item) {
  +///       return ExpansionPanel(
  +///         headerBuilder: (BuildContext context, bool isExpanded) {
  +///           return ListTile(
  +///             title: Text(item.headerValue),
  +///           );
  +///         },
  +///         body: ListTile(
  +///           title: Text(item.expandedValue),
  +///           subtitle: Text('To delete this panel, tap the trash can icon'),
  +///           trailing: Icon(Icons.delete),
  +///           onTap: () {
  +///             setState(() {
  +///               _data.removeWhere((currentItem) => item == currentItem);
  +///             });
  +///           }
  +///         ),
  +///         isExpanded: item.isExpanded,
  +///       );
  +///     }).toList(),
  +///   );
  +/// }
  +/// ```
  +/// {@end-tool}
  +///
   /// See also:
   ///
   ///  * [ExpansionPanel]
  +///  * [ExpansionPanelList.radio]
   ///  * <https://material.io/design/components/lists.html#types>
   class ExpansionPanelList extends StatefulWidget {
     /// Creates an expansion panel list widget. The [expansionCallback] is
  
positive.code:   /// expand/collapse button is pushed. The [children] and [animationDuration]
    /// arguments must not be null. The [children] objects must be instances
    /// of [ExpansionPanelRadio].
    const ExpansionPanelList.radio({
      Key key,
      this.children = const <ExpansionPanelRadio>[],
  
negative.code: }
  
  /// An expansion panel that allows for radio-like functionality.
  /// This means that at any given time, at most, one [ExpansionPanelRadio]
  /// can remain expanded.
  ///
  /// A unique identifier [value] must be assigned to each panel.
  /// This identifier allows the [ExpansionPanelList] to determine
  /// which [ExpansionPanelRadio] instance should be expanded.
  ///
  /// See [ExpansionPanelList.radio] for a sample implementation.
  class ExpansionPanelRadio extends ExpansionPanel {
  
    /// An expansion panel that allows for radio functionality.
  