4:32:32beachRenfield: The macro call (USE-PARAM) is expanded at compile-time, and the expansion contains the value of *MY-PARAM* at compile time. The symbol *MY-PARAM* does not appear in the expansion, so it does not appear in the body of the LET.
4:35:25beachRenfield: If you just do (MACROEXPAND-1 '(WINDOW::USE-PARAM)) you will see what it expands to.
4:50:30beachRenfield: I am not sure what you are trying to do, but if you define USE-PARAM as (DEFMACRO USE-PARAM () '`(,*MY-PARAM*)) you will get *MY-PARAM* in the expansion, rather than its value.
4:51:23beachACTION is now convinced that the real use case is more complicated, and that his suggestions won't work in the real case.