Common Lisp の話だけど、マクロを定義するときに、引数部分に &body と書くか &rest と書くかで適切なインデントの仕方が変わるのでその情報をどうやって取得すればいいんだっていう話がある。これは Emacs + SLIME の環境では解決されている。