anchor.diff:      #'(lambda (&rest args) (apply function (rest args))))
      (t
       #'(lambda (&rest args) (apply function arg1 (rest args))))))
  +
  +(defgeneric signal-connect (gobject signal function &key))
   
   (defmethod signal-connect ((gobject gobject) signal function
   			   &key (detail 0) after object remove)
  
positive.code:   (apply #'signal-emit-with-detail object signal 0 args))
  
  
  ;;; Message logging
  
  ;; TODO: define and signal conditions based on log-level
  
  ;; (defcallback log-handler (nil (domain (copy-of string))
  ;; 			  (log-level int)
  ;; 			  (message (copy-of string)))
  ;;   (error "~A: ~A" domain message))
  
  ;; (setf (extern-alien "log_handler" system-area-pointer) (callback log-handler))
  
  
  ;;;; Convenient macros
  
  (defmacro def-callback-marshal (name (return-type &rest args))
  
negative.code:       (callback user-data-destroy-func))
       callback-id)))
  
  (defgeneric create-callback-function (gobject function arg1))
  
  (defmethod create-callback-function ((gobject gobject) function arg1)
    (cond
     ((or (eq arg1 t) (eq arg1 gobject)) function)
  