defclass表达式中插槽上的:type类型说明符是什么意思?它似乎与defstruct中的工作方式不同:
* (defclass counter ()
((value :initform 0
:type (integer 0 *)
:accessor value)))
#<STANDARD-CLASS COMMON-LISP-USER::COUNTER>
* (defparameter *c* (make-instance 'counter))
*C*
* (value *c*)
0
* (decf (value *c*))
-1
* (value *c*)
-1
(decf (value *c*))
为什么不产生错误?