anchor.diff:         t))
   
   (defun structure-cffi-type (type)
  -  (declare (structure-type type))
  +  (unless (structure-type-p type)
  +    (error "The vaue ~S is an invalid type." type))
     `(:struct ,type))
   
   (defun structure-cffi-type-size (type)
     (cffi:foreign-type-size (structure-cffi-type type)))
   
   (defun structure-cuda-type (type)
  -  (declare (structure-type type))
  +  (unless (structure-type-p type)
  +    (error "The vaue ~S is an invalid type." type))
     (cadr (assoc type +structure-table+)))
   
   (defun structure-accessors (type)
  -  (declare (structure-type type))
  +  (unless (structure-type-p type)
  +    (error "The vaue ~S is an invalid type." type))
     (caddr (assoc type +structure-table+)))
   
   
  
positive.code:       (intern (string stars-string) 'cl-cuda.lang.type))))
  
  (defun array-cffi-type (type)
    (declare (array-type type))
    (declare (ignorable type))
    'cu-device-ptr)
  
  (defun array-cffi-type-size (type)
  
negative.code:           (cl-cuda-type-p base))))))
  
  (defun array-type-base (type)
    (unless (array-type-p type)
      (error "The value ~S is an invalid type." type))
    (let ((type-string (princ-to-string type)))
      (cl-ppcre:register-groups-bind (base-string nil)
          (+array-type-regex+ type-string)
        (intern (string base-string) 'cl-cuda.lang.type))))
  
  (defun array-type-stars (type)
    (unless (array-type-p type)
      (error "The value ~S is an invalid type." type))
    (let ((type-string (princ-to-string type)))
      (cl-ppcre:register-groups-bind (_ stars-string)
          (+array-type-regex+ type-string)
  