anchor.diff:      (symbol
        (or
         (gethash type *lisp-type-to-type-number*)
  +      (let ((class (find-class type nil)))
  +	(when (and class (not (class-finalized-p class)))
  +	  (finalize-inheritance class)
  +	  (gethash type *lisp-type-to-type-number*)))
         (and error-p (error "Type not registered: ~A" type))))
  -    (class (find-type-number (class-name type) error-p))))
  +    (class 
  +     (find-type-number (class-name type) error-p))))
    
   (defun type-from-number (type-number &optional error)
     (multiple-value-bind (type found)
  
positive.code: 	   (super (most-specific-proxy-superclass class))
  	   (gtype (or 
  		   (first (ginstance-class-gtype class))
  		   (default-alien-type-name class-name)))
  	   (type-number
  	    (or 
  	     (find-type-number class-name)
  	     (let ((type-number
  		    (if (or 
  			 (symbolp gtype)
  			 (type-number-from-glib-name gtype nil))
  			(register-type class-name gtype)
  		      (register-new-type class-name (class-name super) gtype))))
  	       (type-class-ref type-number)
  	       type-number))))
        #+nil
        (when (and
  	     (supertype type-number) 
  	     (not (eq (class-name super) (supertype type-number))))
  	(warn "Super class mismatch between CLOS and GObject for ~A" 
  	      class-name)))
      (update-size class))
  
negative.code: (defun type-from-glib-name (name)
    (type-from-number (type-number-from-glib-name name) t))
  
  (defun type-registered-p (type)
    (nth-value 1 (gethash type *lisp-type-to-type-number*)))
  
  (defun register-type (type id)
    (cond
     ((type-registered-p type) (find-type-number type))
     ((not id) (warn "Can't register type with no foreign id: ~A" type))
     (t    
      (pushnew (cons type id) *registered-types* :key #'car)
  