anchor.diff:  (defbinding lisp-callback-closure-new () gclosure
     (callback-id unsigned-int))
   
  +(defun register-callback-function (function)
  +  (check-type function (or null symbol function))
  +  (register-user-data function))
  +
  +(defun make-callback-closure (function)
  +  (lisp-callback-closure-new (register-callback-function function)))
   
   
   ;;;; Callback mechanism
   
  -(defun register-callback-function (function)
  -  (check-type function (or null symbol function))
  -  (lisp-callback-closure-new (register-user-data function)))
  -
   (defun callback-trampoline (callback-id params return-value)
     (let* ((return-type (unless (null-pointer-p return-value)
  -			(type-from-number (gvalue-type return-value))))
  +			(gvalue-type return-value)))
   	 (args nil)
   	 (callback-function (find-user-data callback-id)))
   
  
positive.code: 
  (pushnew 'after-gc-hook ext:*after-gc-hooks*)
  (after-gc-hook)
  
  
  
  
negative.code: (defmethod signal-connect :around ((gobject gobject) signal function
  				   &key after object)
    (declare (ignore object))
    (let ((callback-id (make-callback-closure (call-next-method))))
      (signal-connect-closure gobject signal callback-id :after after)))
  