(memq (syntax->datum f) '#,thunked))
(define (field-bindings field+value)
- ;; Return field to value bindings, for use in `letrec*' below.
+ ;; Return field to value bindings, for use in 'let*' below.
(map (lambda (field+value)
(syntax-case field+value ()
((field value)
(syntax-case s (inherit #,@fields)
((_ (inherit orig-record) (field value) (... ...))
- #`(letrec* #,(field-bindings #'((field value) (... ...)))
+ #`(let* #,(field-bindings #'((field value) (... ...)))
#,(record-inheritance #'orig-record
#'((field value) (... ...)))))
((_ (field value) (... ...))
s)))))
(let ((fields (append fields (map car dflt))))
(cond ((lset= eq? fields 'expected)
- #`(letrec* #,(field-bindings
- #'((field value) (... ...)))
+ #`(let* #,(field-bindings
+ #'((field value) (... ...)))
(ctor #,@(map field-value 'expected))))
((pair? (lset-difference eq? fields 'expected))
(error* "extraneous field initializers ~a"
(match (foo (bar 1))
(($ <foo> 1 42) #t)))))
-(test-assert "define-record-type* with letrec* behavior"
+(test-assert "define-record-type* with let* behavior"
;; Make sure field initializers can refer to each other as if they were in
- ;; a `letrec*'.
+ ;; a 'let*'.
(begin
(define-record-type* <bar> bar make-bar
foo?
(equal? c d)
(match e (($ <foo> 42 77) #t))))))
-(test-assert "define-record-type* & inherit & letrec* behavior"
+(test-assert "define-record-type* & inherit & let* behavior"
(begin
(define-record-type* <foo> foo make-foo
foo?