anchor.diff:  (defun draw-items (type)
     (let* ((char (type-char type))
   	 (size (maze-dimensions *maze*))
  -	 (y 0)
  -	 (curr (assoc* type *items*)))
  +	 (items (assoc* type *items*))
  +	 (y 0))
       (flet ((hide ()
   	     (unless (eql :wall type)
  -	       (dolist (item curr)
  -		 (qfun* (first curr) "QGraphicsItem" "setVisible" nil)))))
  +	       (dolist (item items)
  +		 (qfun* item "QGraphicsItem" "setVisible" nil)))))
         (hide)
         (dolist (row (maze-text *maze*))
   	(let ((x 0))
   	  (do-string (curr-char row)
   	    (when (char= char curr-char)
  -	      (do- (qfun* (first curr) "QGraphicsItem")
  +	      (do- (qfun* (first items) "QGraphicsItem")
   		("setPos" (list x y))
   		("setVisible" t))
  -	      (setf curr (rest curr)))
  +	      (setf items (rest items)))
   	    (incf x (first *item-size*))))
   	(incf y (second *item-size*)))
         (hide))))
  
positive.code:   (draw-items :wall))
  
  (defun create-items ()
    (flet ((add (item type)
  	   (push item (cdr (assoc type *items*)))
  	   (qfun *scene* "addItem" item)))
      (dolist (types *items*)
        (dolist (item (cdr types))
  	(qdel item)))
      (setf *items* (mapcar #'(lambda (x) (list (cdr x))) +item-types+))
      (dolist (row (maze-text *maze*))
        (do-string (char row)
  	(unless (char= #\Space char)
  	  (let* ((type (char-type char))
  		 (item (create-item type)))
  	    (add item type)))))
      (add (create-item :player2) :player2)
      (dotimes (i (length (cdr (assoc :object *items*))))
        (add (create-item :object2) :object2))))
  
  (defun create-item (type)
    (let* ((char (type-char type))
  	 (file (format nil "pics/~(~a~).png" type))
  	 (item (if (probe-file file)
  		   (qnew "QGraphicsPixmapItem(QPixmap)" (qnew "QPixmap(QString)" file))
  		   (let ((item (qnew "QGraphicsTextItem")))
  		     (qfun item "setHtml"
  			   (format nil "<span style='font-family:monospace; font-size:12pt; font-weight:bold; color:~a;'>~c"
  				   (case type
  
negative.code: ;;;
  ;;; This is a simple GUI for CL-Sokoban, see http://www.cliki.net/CL-Sokoban 
  
  (load (eql:in-home "examples/sokoban/3rd-party/sokoban"))
  (load (eql:in-home "examples/sokoban/3rd-party/levels"))
  
  (defpackage :eql-sokoban
    (:use :common-lisp :util :eql :cl-sokoban)
  