(require 'newobject1) (define-macro (check-count val) `(if (not (= (Foo-fooCount) ,val)) (error "Error checking val " ,val " != " ,(Foo-fooCount)))) (define f (Foo-makeFoo)) (check-count 1) (define f2 (makeMore f)) (check-count 2) (set! f #f) (gc #t) (check-count 1) (define f3 (makeMore f2)) (check-count 2) (set! f3 #f) (set! f2 #f) (gc #t) (check-count 0) (exit 0)