#!/usr/bin/env gsi ; vim: syntax=scheme (load "../err5rs-records-inspection.scm") (load "../err5rs-records-procedural.scm") (define (display* . args) (if (null? args) (display "\n") (begin (display (car args)) (apply display* (cdr args))))) (define test (make-rtd 'test '#((immutable x) (immutable y)))) (define make-test (rtd-constructor test)) (define test? (rtd-predicate test)) (define test-x (rtd-accessor test 'x)) (define test-y (rtd-accessor test 'y)) (define test2 (make-rtd 'test2 '#(x z) test)) (define make-test2 (rtd-constructor test2)) (define test2? (rtd-predicate test2)) (define test2-x (rtd-accessor test2 'x)) (define test-z (rtd-accessor test2 'z)) (define test2-x-set (rtd-mutator test2 'x)) (define test-z-set (rtd-mutator test2 'z)) (let ((t (make-test 1 2))) (pp t) (display* (test? t)) (display* (test2? t)) (display* (test-x t)) (display* (test-y t))) (let ((t (make-test2 1 2 3 4))) (display* (test? t)) (display* (test2? t)) (display* (test-x t)) (display* (test-y t)) (display* (test2-x t)) (display* (test-z t)) (pp t) (display* (test2-x-set t 5)) (display* (test-z-set t 6)) (display* (test2-x t)) (display* (test-z t)) (pp t))