According to the manual, type declarations (for type specifiers which
do not use satisfies) are treated as assertions, in function
declarations and structure slots. Apparently this is not true of class
slots. (With (declare (optimize (safety 3))), I can cause a type error
during make-instance when an initform is not of the specified type for
the slot, but not when setting slot values after the object is
initialized.) Is there any way I can coerce SBCL into doing strict
type checks whenever a slot value is updated?