anchor.diff:      (funcall f x y2))
     nil)
   
  -(defun matrix-get (x y)
  -  (elt (elt *matrix*
  +(defun matrix-get (m x y)
  +  (elt (elt m
   	    (matrix-translate x))
          (matrix-translate y)))
   
  -(defun matrix-set (x y v)
  -  ;(format t "~a:~a=~a " x y v)
  -  (setf (elt (elt *matrix* x) y) v))
  +(defun matrix-set (m x y v)
  +  (setf (elt (elt m x) y) v))
   
   (defun matrix-translate (x)
     (if (= x *cells-count*)
  
positive.code: (defvar *cells-count* nil)
  (defvar *cell-size* nil)
  (defvar *matrix* nil)
  (defvar *dead-color* nil)
  (defvar *alive-color* nil)
  
  
negative.code: 	  do (push (make-array size) matrix))
      matrix))
  
  (defun iterate (f size)
    (let ((bounds (sub1 size)))
      (loop for x from 0 to bounds
  	  do (loop for y from 0 to bounds
  		   do (funcall f x y)))))
  
  (defun iterate-near (f x y)
    (let ((x0 (sub1 x))
  	(x2 (add1 x))
  	(y0 (sub1 y))
  