anchor.diff:    _FieldTypeColumn() : super('Type');
   
     @override
  -  dynamic getValue(FieldReference dataObject) =>
  +  String getValue(FieldReference dataObject) =>
         dataObject.isEmptyReference || dataObject.isSentinelReference
             ? ''
  -          : dataObject.type;
  +          : dataObject.type ?? '';
   
     @override
     String getDisplayValue(FieldReference dataObject) =>
  
positive.code:     //              controller. Have other ValueListenables on controller to
      //              listen to, so we don't need the setState calls.
      // Update the chart when the memorySource changes.
      addAutoDisposeListener(controller.selectedSnapshotNotifier, () {
        setState(() {
          controller.computeAllLibraries(rebuild: true);
        });
      });
    }
  
    @override
    Widget build(BuildContext context) {
      controller.instanceFieldsTreeTable = TreeTable<FieldReference>(
        dataRoots: controller.instanceRoot,
        columns: columns,
        treeColumn: treeColumn,
        keyFactory: (typeRef) => PageStorageKey<String>(typeRef.name),
  
negative.code: 
    @override
    int compare(FieldReference a, FieldReference b) {
      final valueA = getValue(a);
      final valueB = getValue(b);
      return valueA.compareTo(valueB);
    }
  
  