Update: Now when I look at it again I notice defmacro! also uses the ,(progn ,@body) trick. Thanks again.