anchor.diff:  
   ;; KEVENT STRUCTS
   #+darwin
  -(defun parse-kevent-struct (kevent-struct-ptr)
  -  (cffi:with-foreign-slots ((ident filter flags fflags data udata ext) kevent-struct-ptr (:struct kevent64-s))
  -    (list ident
  -	  (cffi:foreign-enum-keyword 'kevent-filters filter)
  -	  (remove-if #'(lambda (keyword)
  -			 (zerop (logand flags (cffi:foreign-enum-value 'kevent-flags keyword))))
  -		     (cffi:foreign-enum-keyword-list 'kevent-flags))
  -	  fflags
  -	  data 
  -	  udata
  -	  (list (cffi:mem-aref ext :uint64 0)
  -		(cffi:mem-aref ext :uint64 1)))))
  -
  -#+darwin
  -(defun prepare-kevent-struct (change kevent-struct-ptr)
  -  (cffi:with-foreign-slots ((ident filter flags fflags data udata ext) kevent-struct-ptr (:struct kevent64-s))
  -    (destructuring-bind (change-ident change-filter change-flags) change
  -      (setf ident change-ident
  -	    filter (cffi:foreign-enum-value 'kevent-filters change-filter)
  -	    flags (cffi:foreign-enum-value 'kevent-flags change-flags)
  -	    fflags 0
  -	    data 0
  -	    udata 0)
  -
  -      (setf (cffi:mem-aref ext :uint64 0) 0
  -	    (cffi:mem-aref ext :uint64 1) 0))))
  +(progn
  +  (defun parse-kevent-struct (kevent-struct-ptr)
  +    (cffi:with-foreign-slots ((ident filter flags fflags data udata ext) kevent-struct-ptr (:struct kevent64-s))
  +      (list ident
  +	    (cffi:foreign-enum-keyword 'kevent-filters filter)
  +	    (remove-if #'(lambda (keyword)
  +			   (zerop (logand flags (cffi:foreign-enum-value 'kevent-flags keyword))))
  +		       (cffi:foreign-enum-keyword-list 'kevent-flags))
  +	    fflags
  +	    data 
  +	    udata
  +	    (list (cffi:mem-aref ext :uint64 0)
  +		  (cffi:mem-aref ext :uint64 1)))))
  +
  +  (defun prepare-kevent-struct (change kevent-struct-ptr)
  +    (cffi:with-foreign-slots ((ident filter flags fflags data udata ext) kevent-struct-ptr (:struct kevent64-s))
  +      (destructuring-bind (change-ident change-filter change-flags) change
  +	(setf ident change-ident
  +	      filter (cffi:foreign-enum-value 'kevent-filters change-filter)
  +	      flags (cffi:foreign-enum-value 'kevent-flags change-flags)
  +	      fflags 0
  +	      data 0
  +	      udata 0)
  +
  +	(setf (cffi:mem-aref ext :uint64 0) 0
  +	      (cffi:mem-aref ext :uint64 1) 0)))))
  +
  +#+freebsd
  +(progn
  +  (defun parse-kevent-struct (kevent-struct-ptr)
  +    (cffi:with-foreign-slots ((ident filter flags fflags data udata) kevent-struct-ptr (:struct kevent))
  +      (list ident
  +	    (cffi:foreign-enum-keyword 'kevent-filters filter)
  +	    (remove-if #'(lambda (keyword)
  +			   (zerop (logand flags (cffi:foreign-enum-value 'kevent-flags keyword))))
  +		       (cffi:foreign-enum-keyword-list 'kevent-flags))
  +	    fflags
  +	    data 
  +	    udata)))
  +
  +  (defun prepare-kevent-struct (change kevent-struct-ptr)
  +    (cffi:with-foreign-slots ((ident filter flags fflags data udata) kevent-struct-ptr (:struct kevent))
  +      (destructuring-bind (change-ident change-filter change-flags) change
  +	(setf ident change-ident
  +	      filter (cffi:foreign-enum-value 'kevent-filters change-filter)
  +	      flags (cffi:foreign-enum-value 'kevent-flags change-flags)
  +	      fflags 0
  +	      data 0
  +	      udata (cffi:null-pointer))))))
  
positive.code: 	   :do
  	   (prepare-kevent-struct change ptr))
  	
  	(let ((number-of-events (%ff-kevent64 kqueue-descriptor
  					      ptr-change-list (length change-list)
  					      ptr-event-list 0
  					      0
  					      timeout)))
  	  (assert (zerop number-of-events))))
  
        (setf (gethash socket (monitor-table poller)) value))))
  
negative.code: 
  (defparameter *kevent-struct* 
    #+darwin '(:struct kevent64-s)
    #+freebsd '(:struct kevent)
    #-(or darwin freebsd) (error "Unsupported platform for KQUEUE."))
  
  (defgeneric kqueue-descriptor (kqueue-poller)
    (:documentation "The OS descriptor for the KQUEUE."))
  