anchor.diff:  
         for (int x = 0; x < boolGrid[y].length; x++) {
           if (boolGrid[y][x] is! bool) {
  -          throw new TypeError('Grid rows must contain only booleans!');
  +          throw new ArgumentError('Every element of `boolGrid` must be of type boolean!');
           }
           Node node = new Node(new Point(x, y))..walkable = boolGrid[y][x];
           nodeRow.add(node);
  
positive.code: 
    Grid(List<List<Node>> nodeGrid) : grid = nodeGrid {
      if (!(this.grid is List<List<Node>>)) {
        throw new TypeError();
      } else if (!_isRectangular(this.grid)) {
        throw new ArgumentError('Grid must be rectangular!');
      }
    }
  
    factory Grid.fromBools(List<List<bool>> boolGrid) {
      if (!(boolGrid is List<List<bool>>)) {
        throw new TypeError();
      };
  
      List<List<Node>> nodeGrid = new List<List<Node>>();
  
negative.code:   }
  
    factory Grid.fromString(String stringGrid) {
      if (stringGrid is! String) {
        throw new ArgumentError('Argument `stringGrid` must be of type String');
      } else if (stringGrid == "") {
        throw new ArgumentError('Argument `stringGrid` cannot be "" (empty string)!');
      }
      stringGrid = stringGrid.trim();
  
  