~ chicken-core (chicken-5) /tests/record-rename-test.scm
Trap1;;;; record-rename-test.scm23(define-record foo a)45(define-record-type bar6 (make-bar x)7 bar?8 (x get-x))910(module m1 (make-foo make-bar foo? bar?)11(import scheme (chicken base))1213(define-record foo a b)1415(define-record-type bar16 (make-bar x y)17 bar?18 (x get-x) (y get-y))1920(let ((f1 (make-foo 1 2))21 (f2 (make-bar 3 4)))22 (print "Inside module m1: " (list foo f1 bar f2)))2324) ; m12526(define toplevel-foo? foo?)27(define toplevel-bar? foo?)2829(let ((f1 (make-foo 1))30 (f2 (make-bar 2)))31 (print "At toplevel before importing m1: " (list foo f1 bar f2))32 (assert (foo? f1))33 (assert (not (bar? f1)))34 (assert (not (foo? f2)))35 (assert (bar? f2)))3637(import m1)3839(let ((f1 (make-foo 1 2))40 (f2 (make-bar 3 4)))41 (print "At toplevel after importing m1: " (list foo f1 bar f2))42 (assert (foo? f1))43 (assert (not (bar? f1)))44 (assert (not (foo? f2)))45 (assert (bar? f2))46 (assert (not (toplevel-foo? f1)))47 (assert (not (toplevel-bar? f1)))48 (assert (not (toplevel-foo? f2)))49 (assert (not (toplevel-bar? f2))))