(define-auxiliary-syntax name)
(syntax-let-optionals* () type-args expr)
(syntax-let-optionals* ((param default) . rest) (arg0 . args) expr)
(syntax-let-optionals* ((param default) . rest) () expr)
(syntax-let-optionals* (param . rest) (arg0 . args) expr)
(syntax-let-optionals* (param . rest) () expr)
(define-binary-type (name params ...) gen-pred gen-read gen-write)