(pred #'b req opt (cons #t (reverse rkey))))
((aok a b) (and (eq? (syntax->datum #'aok) #:allow-other-keys)
(eq? (syntax->datum #'a) #:rest))
- (rest #'b req opt (cons #t (reverse rkey))))
+ (rest #'b req opt (cons #t (reverse rkey)) #f))
((aok . r) (and (eq? (syntax->datum #'aok) #:allow-other-keys)
(id? #'r))
- (rest #'r req opt (cons #t (reverse rkey))))
+ (rest #'r req opt (cons #t (reverse rkey)) #f))
((a . b) (eq? (syntax->datum #'a) #:predicate)
(pred #'b req opt (cons #f (reverse rkey))))
((a b) (eq? (syntax->datum #'a) #:rest)
(define (pred args req opt kw)
(syntax-case args ()
((x) (check req opt #f kw #'x))
- ((x a b) (eq? (syntax->datum #'a #:rest))
- (rest #'b req opt #f kw #'x))
+ ((x a b) (eq? (syntax->datum #'a) #:rest)
+ (rest #'b req opt kw #f))
((x . b) (id? #'b)
- (rest #'b req opt #f kw #'x))
+ (rest #'b req opt kw #f))
(else
(syntax-violation 'lambda* "invalid argument list following #:predicate"
orig-args args))))