anchor.diff:    List toList() => data;
   
     Iterable<String> _paddedOutput() {
  -    var aux = [name]..addAll(data.map((e) => e.toString()));
  -    int width = aux.fold(0, (prev, e) => max(prev, e.length));
  +    var aux = [name, ...data.map((e) => e.toString())];
  +    var width = aux.fold(0, (prev, e) => max(prev as int, e.length));
       return aux.map((String e) => e.padLeft(width));
     }
   
  +  @override
     String toString() => _paddedOutput().join('\n');
   }
   
  
positive.code:     _colnames[j] = name;
    }
  
    /**
     * Apply function [f] to each column (or possibly to a subset of columns
     * as specified by [columnNames]).
     */
    Table columnApply(Function f, {List<String> variableNames}) {
      if (variableNames == null) variableNames = _colnames;
  
  
negative.code:     }
    }
  
    /// Get the row i of the table as a Map.
    Map row(int i) {
      var res = {};
      for (var j = 0; j < ncol; j++) {
        res[_colnames[j]] = column(j).data[i];
      }
  
      return res;
    }
  
    /// Get column i.
    Column column(int j) => _data[j];
  
    Column operator [](String columnName) => _data[_colnames.indexOf(columnName)];
  
    /// Get the number of rows in the table.
    int get nrow => (_data.isEmpty) ? 0 : _data.first.data.length;
  
    /// Get the number of columns in the table.
    int get ncol => (_colnames.isEmpty) ? 0 : _colnames.length;
  
    /// Return the names of table columns as a List.
    List<String> get colnames => _colnames;
  
    /// Check if the table is empty.  You can have columns set up, but no data in them.
    bool get isEmpty => (nrow == 0) ? true : false;
  
    /// Change the name of column [i] to [name].
    /// Throws if name is already taken.
    void setColname(int j, String name) {
      if (_colnames.contains(name)) {
        throw 'Column ${name} already exists';
  