(proclaim '(declaration foo)) (sb-cltl2:define-declaration foo (declaration-specifier environment) (declare (ignore environment)) (format *trace-output* "~&Declaring with declaration specifier ~S~%" declaration-specifier) (values :declare `(foo . ,(second declaration-specifier)))) (defmacro get-foo (&environment env) (format *trace-output* "~&Retrieved declaration information ~S~%" (sb-cltl2:declaration-information 'foo env)) nil) (compile nil '(lambda () (declare (foo :hello)) (get-foo))) ;; Declaring with declaration specifier (FOO :HELLO) ;; Retrieved declaration information :HELLO