diff --git a/module/ice-9/psyntax.scm b/module/ice-9/psyntax.scm index 957a526..e83b3ff 100644 --- a/module/ice-9/psyntax.scm +++ b/module/ice-9/psyntax.scm @@ -1168,7 +1168,16 @@ ((_ name val) (id? #'name) (values 'define-syntax-form #'name - #'val w s mod)))) + #'val w s mod)) + ((_ (name . args) e1 e2 ...) + (and (id? #'name) + (valid-bound-ids? (lambda-var-list #'args))) + ;; need lambda here... + (values 'define-syntax-form (wrap #'name w mod) + (decorate-source + (cons #'lambda (wrap #'(args e1 e2 ...) w mod)) + s) + empty-wrap s mod)))) (else (values 'call #f e w s mod))))))) ((syntax-object? e)