Kawa's syntax-case interpretats bare identifiers is differently from the R6RS standard and its implementations. Is this intentional: (define-syntax foo (lambda (x) (syntax-case x () ((_) (syntax '(1 2 3))) (_ (syntax 123))))) (foo) => (1 2 3) ; in both R6RS and Kawa foo => 123 ; in R6RS foo => #<macro foo> ; in Kawa