(eval-when (compile load eval) (define (syntax->list x) (syntax-case x () ((x . l) (cons #'x (stx->list #'l))) (() '())))) (eval-when (compile load eval) (define (my-datum->syntax stx l) (datum->syntax stx (map (lambda (x) `(quote ,x)) l)))) (define q 1) (define-syntax f (lambda (x) #`(vector #,@(my-datum->syntax #'q '(a (a b) (a (b c) #f)))))) (f 1)