anchor.diff:      void addItem(num x, num y) {
           GridPoint sq = getGridCoords(x,y);
   
  -        if (sq == null) {
  +        if (sq == null)
               return;
  -        }
  -
  -        if (!grid.getElem(sq.x, sq.y).isEmpty()) {
  +
  +        if (!grid.getElem(sq).isEmpty())
               return;
  -        }
  -
  -        updateElem(sq.x, sq.y, 1);
  -    }
  -
  +
  +        updateElem(sq, 1);
  +    }
   }
   
   void main() {
  
positive.code:         elems = new List<Elem>.generate(x*y, (int _) => new Elem(0));
      }
  
      Elem getElem(int xi, int yi) {
          return elems[yi*x + xi];
      }
  
      void setElem(int xi, int yi, Elem e) {
         elems[yi*x + xi] = e;
      }
  
      void incElem(int xi, int yi, int lvl) {
  
negative.code:         }
      }
  
      void updateElem(GridPoint p, int lvl) {
          grid.setElem(p, new Elem(lvl));
          if (lvl != 0) {
              var x = boxBorderSize + (p.x*stepSizeX) + (boxDimX/2);
              var y = boxBorderSize + (p.y*stepSizeY) + (boxDimY/2);
              ctx.fillStyle = "black";
              ctx.fillText(lvl.toString(), x, y);
              print(lvl.toString());
  