CL-USER> (defvar i 1) I CL-USER> (declaim (type (integer 1 10) i)) (I) CL-USER> i 1 CL-USER> (setf i 8) 8 CL-USER> i 8 CL-USER> (setf i (1+ i)) 9 CL-USER> (setf i (1+ i)) 10 CL-USER> (setf i (1+ i)) ; Evaluation aborted on #<TYPE-ERROR expected-type: (INTEGER 1 10) datum: 11>. CL-USER> i 10