diff --git a/lib/chibi/binary-record-chicken.scm b/lib/chibi/binary-record-chicken.scm index f982ea4a..c41a5684 100644 --- a/lib/chibi/binary-record-chicken.scm +++ b/lib/chibi/binary-record-chicken.scm @@ -31,7 +31,7 @@ (b ...) (f ...)) (defrec ((block: . fields) . rest) n m p r w (b ... - (field read-tmp (type read: 'args) write-tmp (type write: 'args) getter)) + (field read-tmp (type read: args) write-tmp (type write: args) getter)) (f ... (field getter . s)))) ((defrec ((block: (field . x)) . rest) n m p r w b f) diff --git a/lib/chibi/binary-record.scm b/lib/chibi/binary-record.scm index d091ae34..085b3c73 100644 --- a/lib/chibi/binary-record.scm +++ b/lib/chibi/binary-record.scm @@ -7,7 +7,7 @@ ((defrec () n m p r w ((field-tmp field-read field-read-expr field-write field-write-expr field-get) ...) ((field getter . s) ...) - ((def setter val) ...)) + (def-setter ...)) (begin (define-record-type n (m field ...) p (field getter . s) ...) @@ -20,7 +20,7 @@ (let ((field-write field-write-expr) ...) (lambda (x out) (field-write (field-get x) out) ...))) - (def setter val) ...) + def-setter ...) ;; workaround for impls which strip hygiene from top-level defs ;; for some reason, works in chicken but not across libraries ;; @@ -55,12 +55,12 @@ (b ...) (f ...) (s ...)) (defrec ((block: . fields) . rest) n m p r w (b ... - (field read-tmp (type read: 'args) write-tmp (type write: 'args) getter)) + (field read-tmp (type read: args) write-tmp (type write: args) getter)) (f ... (field getter tmp-setter)) (s ... (define setter - (let ((pred? (type pred: 'args))) + (let ((pred? (type pred: args))) (lambda (x val) (if (not (pred? val)) (error "invalid val for" 'field val)) @@ -69,7 +69,7 @@ (b ...) (f ...) s) (defrec ((block: . fields) . rest) n m p r w (b ... - (field read-tmp (type read: 'args) write-tmp (type write: 'args) getter)) + (field read-tmp (type read: args) write-tmp (type write: args) getter)) (f ... (field getter)) s)) diff --git a/lib/chibi/binary-record.sld b/lib/chibi/binary-record.sld index 94699199..cd515842 100644 --- a/lib/chibi/binary-record.sld +++ b/lib/chibi/binary-record.sld @@ -16,7 +16,8 @@ ;; auxiliary syntax make: pred: read: write: block: ;; indirect exports - define-binary-type defrec define-auxiliary-syntax) + define-binary-type defrec define-auxiliary-syntax + syntax-let-optionals*) (include "binary-types.scm") (cond-expand (chicken