anchor.diff:  		    (sdl2:set-window-size sdl-win ,sketch-width ,sketch-height))))))
   
   (defmacro define-sketch-setup (sketch-name &body body)
  +  "Defines a sketch SETUP method. Body is wrapped with WITH-SLOTS for all slots defined. "
     `(defmethod setup ((window ,sketch-name))
        (with-slots ,(gethash sketch-name *sketch-slot-hash-table*) window
          ,@body)))
  
positive.code: 		  `((title ,sketch-title)
  		    (width ,sketch-width)
  		    (height ,sketch-height)
  		    (framerate ,sketch-framerate))))
  	 
  	 (slots (mapcar #'car slot-bindings))
  	 
  	 (initforms (mapcar #'(lambda (binding)
  			       `(,(car binding) :initform ,(cadr binding)))
  			    slot-bindings)))
      
      (setf (gethash sketch-name *sketch-slot-hash-table*) slots)
  
      `(progn
  
negative.code: ;;; Macros
  
  (eval-when (:compile-toplevel :load-toplevel)
    ;; We cannot do (defparameter *sketch-slot-hash-table* (make-hash-table))
    ;; because the compiler must not evaluate the initial-value form nor
    ;; assign the dynmic variable at compile time (as per clhs).
    (defvar *sketch-slot-hash-table*)
    (setf *sketch-slot-hash-table* (make-hash-table)))
  
  (defmacro defsketch (sketch-name window-options slot-bindings &body body)
    "Defines a class, inheriting from SKETCH:SKETCH. It is used for convenience
  because it provides a compact syntax for declaring window options, let-like
  init-form for providing slots and inline draw body. It also takes care about
  communicating new title, sketch and height values to SDL backend. Additionaly,
  defining a class using defsketch enables selected Sketch methods, like DRAW and
  SETUP to automatically wrap their bodies inside WITH-SLOTS, using all slot names."
    (let* ((sketch-title (getf window-options :title "Sketch"))
  	 (sketch-width (getf window-options :width 200))
  	 (sketch-height (getf window-options :height 200))
  	 (sketch-framerate (getf window-options :framerate :auto))
  	 ;; We need to append SKETCH-TITLE, SKETCH-WIDTH, SKETCH-HEIGHT
  	 ;; and SKETCH-FRAMERATE from WINDOW-OPTIONS to SLOT-BINDINGS.
  	 ;; If SLOT-BINDINGS already contains any of these, we're going
  	 ;; to replace them - declaring title, width, height or framerate
  	 ;; along with other slots is technically illegal in Sketch, but
  	 ;; currently, we're just going to use the values provided inside
  	 ;; WINDOW-OPTIONS, or fallback to defaults silently.
  	 (slot-bindings
  	  (append (remove-if
  		   #'(lambda (x)
  