anchor.diff:  
   (defun read-pgm-p5 (stream)
     (with-pnm-header t
  -    (loop with size of-type fixnum = (* width height) 
  +    (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)
  
positive.code: (defpackage "IMAGE"
  ; (:use #:clim-lisp)
    (:use #:clim-clx #:common-lisp)
    (:export    
     "WRITE-PNM" "READ-IMAGE-FILE"
     "IMAGE" "IMAGE-COLOR" "IMAGE-GADGET" "IMAGE-HEIGHT"
     "IMAGE-PIXEL" "IMAGE-PIXELS" "IMAGE-WIDTH"
  
negative.code:      (skip-whitespace-and-comments)
       (read-number height)
       (when ,read-max-value
         (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)
  	     with ,result = (make-array `(,height ,width) :element-type ',element-type)
  	     with vec = (make-array `(,size)
  				    :element-type ',element-type
  				    :displaced-to ,result)
  	     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
      (let ((color 0))
        (skip-whitespace-and-comments)
        (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)
      (let ((color 0))
        (skip-whitespace-and-comments)
        (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)
      (let ((r 0)
  	  (g 0)
  	  (b 0))
  