(define-macro (check test) `(if (not ,test) (error "Error in test" ',test))) (b "hello") (check (string=? (b) "hello")) (define sa (new-A)) (A-x-set sa 5) (a sa) (check (= (A-x-get (a)) 5)) (ap sa) (check (= (A-x-get (ap)) 5)) (A-x-set sa 10) (check (= (A-x-get (ap)) 10)) (define sa2 (new-A)) (A-x-set sa2 -4) (cap sa2) (check (= (A-x-get (cap)) -4)) (A-x-set sa2 -7) (check (= (A-x-get (cap)) -7)) (check (= (A-x-get (ar)) 5)) (ar sa2) (check (= (A-x-get (ar)) -7)) (x 4) (check (= (x) 4)) (exit 0)