define-syntax-case
I think the normal (define-syntax (... stx) (syntax-case stx () cases))
dance is a bit clunky, so here I present my first macro-defining macro:
(define-syntax-rule (define-syntax-case name literals cases ...)
(define-syntax (name stx)
(syntax-case stx literals cases ...)))
It turns this slightly clunky definition:
(define-syntax (defun stx)
(syntax-case stx ()
((_ name (args ...) body ...)
#'(define (name args ...) body ...))))
Into this succinct variant:
(define-syntax-case defun ()
((_ name (args ...) body ...)
#'(define (name args ...) body ...)))
(Not that anybody should write a defun
macro.)