$ diff -u define-struct.rkt.orig define-struct.rkt
--- define-struct.rkt.orig 2012-02-29 00:09:45.093002047 +0900
+++ define-struct.rkt 2012-03-07 10:20:54.236380622 +0900
@@ -432,7 +432,7 @@
(car (generate-temporaries (list id))))
ctor-name)
(build-name id "make-" id))]
- [? (build-name id id "?")]
+ [? (build-name id "is-a-kind-of-" id "?")]
[sels (map (lambda (f)
(build-name id ; (field-id f)
id "-" (field-id f)))
${RACKET_HOME}/collects/racket/private/define-struct.rkt 파일을 위 처럼 바꾸면 아래와 같은짓을 할 수 있습니다.
$ racket Welcome to Racket v5.2.1. - (define-struct rat ()) - (define mb (make-rat)) - (is-a-kind-of-rat? mb) #t - (is-a-kind-of-rat? 'mb) #f - (rat? mb) reference to undefined identifier: rat? === context === /usr/local/racket/collects/racket/private/misc.rkt:87:7