anchor.diff:    (let ((define-callback 
   	  #+cmu'alien:def-callback 	              
   	  #+(and sbcl alien-callbacks)'sb-alien::define-alien-callback
  -	  #+(and sbcl (not alien-callbacks))'sb-alien:define-alien-function))
  +	  #+(and sbcl (not alien-callbacks))'sb-alien:define-alien-function)
  +	(args (mapcar #'(lambda (arg)
  +			  (if (atom arg) (list arg arg) arg))
  +		      args)))
       `(progn
          #+cmu(defparameter ,name nil)
          (,define-callback ,name 
  
positive.code:   ;;; translated according to RETTYPE.  Obtain a pointer that can be
    ;;; passed to C code for this callback by calling %CALLBACK.
    (defmacro define-callback (name return-type args &body body)
      (let ((arg-names (mapcar #'first args))
  	  (arg-types (mapcar #'second args)))
        `(progn
  	 (defvar ,name ',name)
  	 (register-callback ',name 
  
negative.code: ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  
  ;; $Id: interface.lisp,v 1.7 2007-10-17 17:04:15 espen Exp $
  
  (in-package "GFFI")
  
  