anchor.diff:  		      `(,(structure-slot-form field name fn))))))
   	     (get ',name 'setf-foreign-object-components)
   	     (lambda (value object &optional (index 0))
  -	       (declare (ignore index))
   	       (setf
   		,@(iterate-foreign-structure
   		   fields
  
positive.code: 	    (funcall form field fn gn)
  	  (incf gn)))))
  
  (defun structure-slot-form (field name fn)
    "A form for getting or setting the foreign slot value."
    (if (field-count field nil)		; aggregate slot
        `(object
  	(cffi:foreign-slot-value object ',name ',(first field))
  	,(second field) ,fn)
        ;; simple slot
        `(cffi:foreign-slot-value object ',name ',(first field))))
  
  (defmacro defcstruct (name-and-options &body fields)
    "A macro to define the struct to CFFI and to libffi simultaneously.
  
negative.code: ;; Defining C structures.
  ;; Liam Healy 2009-04-07 22:42:15EDT interface.lisp
  ;; Time-stamp: <2010-07-08 09:25:23EDT cstruct.lisp>
  ;; $Id: $
  
  (in-package :fsbv)
  