anchor.diff:  
   
   ;;;
  -;;; Definition of Built-in Vector Types
  +;;; Float3
   ;;;
   
   (defstruct (float3 (:constructor make-float3 (x y z)))
  
positive.code:   (z :float))
  
  (defmethod cffi:translate-into-foreign-memory ((value float3)
                                                 (type float3-c) ptr)
    (cffi:with-foreign-slots ((x y z) ptr (:struct float3))
      (setf x (float3-x value)
            y (float3-y value)
  
negative.code:   (z :float)
    (w :float))
  
  (defmethod cffi:translate-into-foreign-memory ((value float4)
                                                 (type float4-c)
                                                 ptr)
    (cffi:with-foreign-slots ((x y z w) ptr (:struct float4))
      (setf x (float4-x value)
            y (float4-y value)
            z (float4-z value)
            w (float4-w value))))
  
  (defmethod cffi:translate-from-foreign (value (type float3-c))
    (cffi:with-foreign-slots ((x y z w) value (:struct float4))
      (make-float4 x y z w)))
  
  
  ;;;
  ;;; Double3
  ;;;
  
  (defstruct (double3 (:constructor make-double3 (x y z)))
    (x 0.0d0 :type double-float)
    (y 0.0d0 :type double-float)
  