
; Non-hygienic, a la Dylan

(define-syntax with-next-method
  (let ()
    (lambda (expr)
      (syntax-case expr ()
	((with-next-method ?id #f ?formals . ?body)
	 #`(with-next-method ?id #,(datum->syntax #'?id 'next-method)
	     ?formals . ?body))
	((with-next-method ?id ?next ?formals . ?body)
	 #'(lambda (?next . ?formals) . ?body))))))
