Saw ticket 159 and was reminded of this snippet I use:<div><br></div><div><div>; ----------------------------------------------------------------------</div><div>; Handy APROPOSES macro</div><div>; ----------------------------------------------------------------------</div><div><br></div><div>(defmacro aproposes (&rest words)</div><div>  (let ((syms (gensym)) (fns (gensym)) (boundvars (gensym)) (others (gensym)))</div><div>    `(let* ((,syms (when ',words (reduce #'intersection (mapcar #'apropos-list ',words))))</div><div>            (,fns (remove-if-not #'fboundp ,syms))</div><div>            (,boundvars (remove-if-not #'boundp ,syms))</div><div>            (,others (remove-if #'(lambda (sym) (or (fboundp sym) (boundp sym))) ,syms)))</div><div>       (cond</div><div>        ((null ,syms)</div><div>         (format t "~&;; No such symbols found~%"))</div><div>        (t (when ,fns (format t "~&;; Functions:~%~s~%" ,fns))</div><div>           (when ,boundvars (format t "~&;; Bound variables:~%~s~%" ,boundvars))</div><div>           (when ,others (format t "~&;; Other symbols:~%~s~%" ,others))))</div><div>       (values))))</div><div><br></div></div>