ZQAZG2XD44TLBYXNG72BFU437YRZ5A75FRWJ6LHTAHEVNKVTYU2AC
DBSX7XQAQNMMA3TRSOKXUEVK2JMASWMCJOZRLDPLY3RJR7JW44KAC
RXCY7LD6ZRIOIKZEYKLMCYPMQPXF4DOEEFBDLVR2B22BXLZJFFBQC
A3TVGLVHSVLMEHLHB3TPBSD3QGNVGX3DIK6BEBDTTHWBNW4ALMRAC
CZ5H3YEDTFUNPUTCPPOBFRUPIHJ3YRXFX7WZ3DABDIMWKCYVOMQAC
PRE42LRLBF7CR3L7ERIPSQJJTDAQQ4UJ2H5KOHSVX7TL4STJXYNAC
K4KPTJTYRAJID6IBUIXMLOUKQ7J7XXHHFNSJHMYHDU5IA7ZJXABQC
647T6NM73RHYQJNAFIA45AHSWLRTIO5EDM2GHVP633LDYECZB2PQC
(defun my-mexp-hook (&optional (old-hook *macroexpand-hook*))
(labels ((show-def (type name)
;; Only show package markers when compiling. Showing
;; them when loading shows a bunch of ASDF system
;; package noise.
(when *compile-file-pathname*
(fresh-line)
(format t (format nil "[def (~(~a ~A ...)~)]~%" type name)))))
(lambda (fun form env)
(cond
((and (consp form)
(symbolp (first form))
(>= (length (symbol-name (first form)))
3)
(equalp (subseq (symbol-name (first form)) 0 3)
"def"))
(show-def (first form) (second form))))
(when old-hook
(funcall old-hook fun form env)))))
;; (defparameter *old-macroexpand-hook*
;; *macroexpand-hook*)
;;
;; (setf *macroexpand-hook* (my-mexp-hook *macroexpand-hook*))