From 246be37e487ec39bd945bbfdef410a5251f71adc Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Fri, 27 Feb 2009 10:56:15 +0100 Subject: [PATCH] common slot accessors are procedures-with-setters * module/system/base/syntax.scm (define-type): Common slot accessors are also procedures-with-setters. --- module/system/base/syntax.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/module/system/base/syntax.scm b/module/system/base/syntax.scm index 35748bb79..867720cdb 100644 --- a/module/system/base/syntax.scm +++ b/module/system/base/syntax.scm @@ -47,10 +47,11 @@ ,@(cdr def))) rest) ,@(map (lambda (common-slot i) - `(define (,(symbol-append (trim-brackets name) - '- common-slot) - x) - (struct-ref x ,i))) + `(define ,(symbol-append (trim-brackets name) + '- common-slot) + (make-procedure-with-setter + (lambda (x) (struct-ref x ,i)) + (lambda (x v) (struct-set! x ,i v))))) common-slots (iota (length common-slots)))))))