picrin/piclib/picrin/record.scm

18 lines
432 B
Scheme

(define-library (picrin record)
(import (scheme base))
(define (set-record-writer! record-type writer)
(record-set! record-type 'writer writer))
(define-syntax define-record-writer
(syntax-rules ()
((_ (type obj) body ...)
(set-record-writer! type
(lambda (obj)
body ...)))
((_ type writer)
(set-record-writer! type
writer))))
(export define-record-writer))