anchor.diff:  
   ;;;; User data
   
  -(defun (setf object-data) (data object key &key (test #'eq))
  +(defun (setf user-data) (data object key)
     (%object-set-qdata-full
  -   object (quark-from-object key :test test)
  +   object (quark-from-object key)
      (register-user-data data) (callback %destroy-user-data))
     data)
  +
  +;; depecated
  +(defun (setf object-data) (data object key &key (test #'eq))
  +  (assert (eq test #'eq))
  +  (setf (user-data object key) data))
   
   (defbinding %object-get-qdata () unsigned-long
     (object gobject)		 
     (id quark))
   
  +(defun user-data (object key)
  +  (find-user-data (%object-get-qdata object (quark-from-object key))))
  +
  +;; depecated
   (defun object-data (object key &key (test #'eq))
  -  (find-user-data
  -   (%object-get-qdata object (quark-from-object key :test test))))
  +  (assert (eq test #'eq))
  +  (user-data object key))
  +
  +(defun user-data-p (object key)
  +  (nth-value 1 (find-user-data (%object-get-qdata object (quark-from-object key)))))
   
   
   ;;;;
  
positive.code: ;; License along with this library; if not, write to the Free Software
  ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  
  ;; $Id: gobject.lisp,v 1.25 2004-12-28 20:29:05 espen Exp $
  
  (in-package "GLIB")
  
  
negative.code:   ((pname :reader slot-definition-pname :initarg :pname)
     (readable :reader slot-readable-p :initarg :readable)
     (writable :reader slot-writable-p :initarg :writable)
     (construct :initarg :construct)))
  
  (defclass direct-user-data-slot-definition (direct-virtual-slot-definition)
    ())
  
  (defclass effective-user-data-slot-definition (effective-virtual-slot-definition)
    ())
  
  
  (defbinding %object-ref () pointer
    (location pointer))
  