anchor.diff:       (skip-whitespace-and-comments)
        (read-number height)
        (when ,read-max-value
  -       (skip-whitespace-and-comments)       
  +       (skip-whitespace-and-comments)
          (read-number max-value))
        ,@body))
   
   (defmacro with-pnm-ascii-reader (read-max-value element-type &body body)
     (let ((result (gensym)))
       `(with-pnm-header ,read-max-value
  -       (loop with size of-type fixnum = (* width height) 
  +       (loop with size of-type fixnum = (* width height)
   	     with ,result = (make-array `(,height ,width) :element-type ',element-type)
   	     with vec = (make-array `(,size)
   				    :element-type ',element-type
   				    :displaced-to ,result)
  -	     with offset of-type fixnum = 0
  -	     for offset from 0 below size
  +	     for offset of-type fixnum from 0 below size
   	     do ,@body
   	     finally (return ,result)))))
   
   (defun read-pbm-p1 (stream)
     (declare (optimize (speed 3)))
  -  (with-pnm-ascii-reader nil 'bit 
  +  (with-pnm-ascii-reader nil bit
       (let ((color 0))
         (skip-whitespace-and-comments)
  -      (read-number color) 
  +      (read-number color)
         (setf (aref vec offset) color))))
   
   (defun read-pgm-p2 (stream)
     (declare (optimize (speed 3)))
  -  (with-pnm-ascii-reader nil '(unsigned-byte 8) 
  +  (with-pnm-ascii-reader nil (unsigned-byte 8)
       (let ((color 0))
         (skip-whitespace-and-comments)
  -      (read-number color) 
  +      (read-number color)
         (setf (aref vec offset) color))))
   
   (defun read-ppm-p3 (stream)
     (declare (optimize (speed 3)))
  -  (with-pnm-ascii-reader nil '(unsigned-byte 24) 
  +  (with-pnm-ascii-reader nil (unsigned-byte 24)
       (let ((r 0)
   	  (g 0)
   	  (b 0))
  
positive.code: 
  (defun read-pgm-p5 (stream)
    (with-pnm-header t
      (loop with size of-type fixnum = (* width height) 
  	  with result = (make-array `(,height ,width) :element-type '(unsigned-byte 8))
  	  with vec = (make-array `(,size)
  				 :element-type '(unsigned-byte 8)
  
negative.code: (defmacro with-write-pnm-loop ((magic-number max-value) &body body)
    `(let ((height (car (array-dimensions picture)))
  	 (width (cadr (array-dimensions picture))))
       (format stream "P~A~%" ,magic-number)
       (format stream "~A ~A~%" width height)
       (when ,max-value
         (format stream "~A~%" ,max-value))
  