Common Lisp includes a complex and powerful “declaration”
mechanism that allows you to give the compiler special hints
about the types of data that will be stored in particular
variables, and about the ways those variables and functions will
be used. This package defines versions of all the Common Lisp
declaration forms: Most of the Common Lisp declarations are not
currently useful in Emacs Lisp. For example, the byte-code
system provides little opportunity to benefit from type
information. A few declarations are meaningful when byte
compiler optimizations are enabled, as they are by the default.
Otherwise these declarations will effectively be ignored. This
function records a “global” declaration specified by decl-spec.
Since cl-proclaimis a function, decl-spec is evaluated and thus
should normally be quoted. This macro is like cl-proclaim,
except that it takes any number of decl-spec arguments, and the
arguments are unevaluated and unquoted. The cl-declaimmacro also
puts (cl-eval-when (compile load eval) ..