I forgot to say that I get this from the repl: (define-macro (test x . args) `(list ,@(map car args))) (test 10 ('x 1) ('y 2)) '(x y) On the noreturn problem, I'm using this: #ifdef _MSC_VER #define noreturn _Noreturn /* deprecated in C23 */ ... which I got from somewhere online. I wonder what the correct code is.