anchor.diff:  
   (defmethod translate-into-foreign-memory (object (type vector4-type) pointer)
     (with-foreign-slots ((x y z w) pointer (:struct %vector4))
  -                      (setf x (vector4-x object))
  -                      (setf y (vector4-y object))
  -                      (setf z (vector4-z object))
  -		      (setf w (vector4-w object))))
  +                      (setf x (coerce (vector4-x object) 'float))
  +                      (setf y (coerce (vector4-y object) 'float))
  +                      (setf z (coerce (vector4-z object) 'float))
  +		      (setf w (coerce (vector4-w object) 'float))))
   
   (defmethod translate-from-foreign (pointer (type vector4-type))
     (with-foreign-slots ((x y z w) pointer (:struct %vector4))
  
positive.code:                       (setf ctx-data (nth 1 object))
                        (setf sample-count (nth 2 object))
                        (setf loop-count (nth 3 object))
                        (setf stream (nth 4 object))))
  
  (defmethod translate-from-foreign (pointer (type music-type))
    (with-foreign-slots ((ctx-type ctx-data sample-count loop-count stream) pointer (:struct %music))
  
negative.code:                       (convert-into-foreign-memory (camera3d-position object) '(:struct %vector3) (foreign-slot-pointer pointer '(:struct %camera3d) 'position))
                        (convert-into-foreign-memory (camera3d-target object) '(:struct %vector3) (foreign-slot-pointer pointer '(:struct %camera3d) 'target))
                        (convert-into-foreign-memory (camera3d-up object) '(:struct %vector3) (foreign-slot-pointer pointer '(:struct %camera3d) 'up))
                        (setf fovy (coerce (camera3d-fovy object) 'float)
                              type (camera3d-type object))))
  
  (defmethod translate-from-foreign (pointer (type camera3d-type))
  