anchor.diff:  
     /// If provided, this method will be called when the expand button is tapped.
     /// Otherwise, [onItemSelected] will be invoked, if provided.
  -  final FutureOr<void> Function(T) onItemExpanded;
  -
  -  final double itemExtent;
  +  final FutureOr<void> Function(T)? onItemExpanded;
  +
  +  final double? itemExtent;
   
     /// Called on traversal of child node during [buildFlatList].
  -  final void Function(T) onTraverse;
  +  final void Function(T)? onTraverse;
   
     /// Builds a widget representing the empty tree. If [emptyTreeViewBuilder]
     /// is not provided, then an empty [SizedBox] will be built.
  -  final Widget Function() emptyTreeViewBuilder;
  +  final Widget Function()? emptyTreeViewBuilder;
   
     @override
     _TreeViewState<T> createState() => _TreeViewState<T>();
  
positive.code: 
  class TreeView<T extends TreeNode<T>> extends StatefulWidget {
    const TreeView({
      this.dataRootsListenable,
      this.dataDisplayProvider,
      this.onItemSelected,
      this.onItemExpanded,
      this.shrinkWrap = false,
      this.itemExtent,
  
negative.code:   _TreeViewItemState<T> createState() => _TreeViewItemState<T>();
  }
  
  class _TreeViewItemState<T extends TreeNode<T>> extends State<_TreeViewItem<T>>
      with TickerProviderStateMixin, CollapsibleAnimationMixin {
    @override
    Widget build(BuildContext context) {
  