anchor.diff:  // CoveredMineNode and ExposedMineNode, none of them holding state.
   
   // Colors for each mine count (0-8):
  -const List<TextStyle> textStyles = const <TextStyle>[
  -  const TextStyle(color: const Color(0xFF555555), fontWeight: bold),
  -  const TextStyle(color: const Color(0xFF0094FF), fontWeight: bold), // blue
  -  const TextStyle(color: const Color(0xFF13A023), fontWeight: bold), // green
  -  const TextStyle(color: const Color(0xFFDA1414), fontWeight: bold), // red
  -  const TextStyle(color: const Color(0xFF1E2347), fontWeight: bold), // black
  -  const TextStyle(color: const Color(0xFF7F0037), fontWeight: bold), // dark red
  -  const TextStyle(color: const Color(0xFF000000), fontWeight: bold),
  -  const TextStyle(color: const Color(0xFF000000), fontWeight: bold),
  -  const TextStyle(color: const Color(0xFF000000), fontWeight: bold),
  +const List<Color> textColors = const <Color>[
  +  const Color(0xFF555555),
  +  const Color(0xFF0094FF), // blue
  +  const Color(0xFF13A023), // green
  +  const Color(0xFFDA1414), // red
  +  const Color(0xFF1E2347), // black
  +  const Color(0xFF7F0037), // dark red
  +  const Color(0xFF000000),
  +  const Color(0xFF000000),
  +  const Color(0xFF000000),
   ];
  +
  +final List<TextStyle> textStyles = textColors.map((c) =>
  +  new TextStyle(color: c, fontWeight: bold, textAlign: TextAlign.center)).toList();
   
   enum CellState { covered, exploded, cleared, flagged, shown }
   
  
positive.code: 
    // Recursively uncovers cells whose totalMineCount is zero.
    void cull(int x, int y) {
      if ((x < 0) || (x > rows - 1))
        return;
      if ((y < 0) || (y > cols - 1))
        return;
  
      if (uiState[y][x] == CellState.cleared)
        return;
      uiState[y][x] = CellState.cleared;
  
negative.code: 
    int mineCount(int x, int y) {
      int count = 0;
      count += bombs(x - 1, y);
      count += bombs(x + 1, y);
      count += bombs(x, y - 1);
      count += bombs(x, y + 1 );
      count += bombs(x - 1, y - 1);
      count += bombs(x + 1, y + 1);
      count += bombs(x + 1, y - 1);
      count += bombs(x - 1, y + 1);
      return count;
    }
  
    int bombs(int x, int y) => inBoard(x, y) && cells[y][x] ? 1 : 0;
  
    bool inBoard(int x, int y) =>
      (x > 0 && x < (cols - 1) && y > 0 && y < (rows -1));
  }
  
  Widget buildCell(Widget child) {
  