anchor.diff:      (unless (eq (car e) :mouse-move)
         (format t "~A~%" e))))
   
  +(defun add-event-handler (event object func)
  +  (let ((hash (or (gethash event *event-hash*)
  +		  (setf (gethash event *event-hash*) (make-hash-table)))))
  +    (setf (gethash object hash) func)))
  +
   
   (defun make-button (text width height &key line-width line fill background foreground)
     (! (let* ((node (make-instance 'node))
  
positive.code: 			    (setf *last-hover-target* k)
  			    (funcall v k collisions (cons :mouse-hover event))))
  		       (when (eq k *last-hover-target*)
  			 (let ((f (gethash k *on-exit-objects*)))
  			   (when f (funcall f k nil (cons :mouse-exit event)))
  			   (setf *last-hover-target* nil))))))
  	       *on-hover-objects*)
  
      (map-event (lambda (k v)
  		 (let ((collisions (or (gethash k cached-collisions)
  				       (check-intersect (car (children k)) k x y *viewport* *projection*))))
  		   (if collisions
  		       (funcall v k collisions (cons :mouse-move event)))))
  	       *on-mouse-move-objects*)))
  
      
    
  
negative.code: 	   :accessor events)))
     
  
  (defparameter *event-hash* (make-hash-table))
  (defparameter *last-hover-target* nil)
  (defparameter *last-mouse-down-target* nil)
  
  