anchor.diff:              (read in nil nil))
             'single-float))
   
  +(defmethod SFFloat(val)
  +  (coerce val 'single-float))
  +
   ;; ----------------------------------------------------------------------------
   (defun list<-str (str)
     (mapcar (lambda (x)
               (coerce x 'single-float))
             (with-input-from-string (in str)
  -            (loop for x = (read in nil nil) 
  -               while x 
  +            (loop for x = (read in nil nil)
  +               while x
                  collect x))))
   
   ;; ----------------------------------------------------------------------------
  
positive.code:           'single-float))
  
  ;; ----------------------------------------------------------------------------
  (defmethod SFRotation(str)
    (let ((float-list (list<-str str)))
      (list (sb-cga:vec (first float-list)
                        (second float-list)
                        (third float-list))
            (fourth float-list))))
  
  (defmethod SFRotation((val cl:list))
    val)
  
  
  ;; ----------------------------------------------------------------------------
  (defgeneric SFVec3f (x &optional y z))
  
negative.code:          (mapcar (lambda (x)
                     (coerce x 'single-float))
                   (with-input-from-string (in str)
                     (loop for x = (read in nil nil)
                        while x
                        collect x)))))
  
  ;; ----------------------------------------------------------------------------
  