anchor.diff:            height: _kHeadingRowHeight / _kHeadingFontSize,
             color: (Theme.of(context).brightness == Brightness.light)
               ? ((onSort != null && sorted) ? Colors.black87 : Colors.black54)
  -            : ((onSort != null && sorted) ? Colors.white : Colors.white70)
  +            : ((onSort != null && sorted) ? Colors.white : Colors.white70),
           ),
           duration: _kSortArrowAnimationDuration,
  -        child: label
  -      )
  +        child: label,
  +      ),
       );
       if (tooltip != null) {
         label = new Tooltip(
           message: tooltip,
  -        child: label
  +        child: label,
         );
       }
       if (onSort != null) {
         label = new InkWell(
           onTap: onSort,
  -        // TODO(ianh): When we do RTL, we need to use 'end' ordering for the non-numeric case
  -        child: label
  +        child: label,
         );
       }
       return label;
  
positive.code:     bool numeric,
      VoidCallback onSort,
      bool sorted,
      bool ascending
    }) {
      if (onSort != null) {
        final Widget arrow = new _SortArrow(
          visible: sorted,
          down: sorted ? ascending : null,
          duration: _kSortArrowAnimationDuration
        );
        final Widget arrowPadding = const SizedBox(width: _kSortArrowPadding);
        label = new Row(
          children: numeric ? <Widget>[ arrow, arrowPadding, label ]
                            : <Widget>[ label, arrowPadding, arrow ]
        );
      }
      label = new Container(
  
negative.code:     int index,
      this.selected: false,
      this.onSelectChanged,
      @required this.cells,
    }) : assert(cells != null),
         key = new ValueKey<int>(index);
  
  