So, my questions are: 1/ Why is "js" not bound in the second example? I also tried to use letrec-syntax but with same result. 2/ Are there other ways to achieve what I want? 3/ I also tried to use syntax-rules, but from what I understood this is not possible, because you can't execute arbitrary expressions (in this case a cond) at macroexpansion time. Am I right here?