(declaim (optimize (speed 3) (safety 0) (compilation-speed 0) (space 0) (debug 0)))
(declaim (ftype (function (fixnum ) fixnum) FOO ))
(defun FOO (X )
(declare (type FIXNUM X ))
(+ X 1)
)
(declaim (ftype (function (NUMBER ) NUMBER) BAR ))
(defun BAR (X)
(declare (type NUMBER X))
(FOO X)
)
Этот код компилируется без предупреждений. Если заменить number на string, то будет warning. Чтение мануала не помогло. Другие значения safety (до 3) не помогли.