anchor.diff:  	(error "Can't use vector of variable size as return type")
         `(let ((c-vector ,c-vector))
   	(prog1
  -	    (map-c-vector 'vector #'identity ',element-type ,length c-vector)
  +	    (map-c-vector 'vector #'identity c-vector ',element-type ,length)
   	  (destroy-c-vector c-vector ',element-type ,length))))))
   
   (defmethod copy-from-alien-form (c-vector (type (eql 'vector)) &rest args)
  
positive.code:   (check-type id fixnum)
    (multiple-value-bind (user-data p) (gethash id *user-data*)
      (values (car user-data) p)))
  
  (defun destroy-user-data (id)
    (check-type id fixnum)
  
negative.code:   (destructuring-bind (element-type &optional (length '*)) args
      (if (eq length '*)
  	(error "Can't use vector of variable size as return type")
        `(map-c-vector 'vector #'identity ,c-vector ',element-type ',length))))
  
  (defmethod cleanup-form (location (type (eql 'vector)) &rest args)
    (declare (ignore type))
  