Hi Julian, On Sun 19 Sep 2010 02:20, Julian Graham <jool...@gmail.com> writes:
> (define (record-internal? obj) > - (and (struct? obj) > - (let* ((vtable (struct-vtable obj)) > - (layout (symbol->string > - (struct-ref vtable vtable-index-layout)))) > - (and (>= (string-length layout) 4) > - (let ((rtd (struct-ref obj record-index-rtd))) > - (and (record-type-descriptor? rtd))))))) > + (and (struct? obj) (eq? (struct-vtable obj) record-vtable))) Is it possible to keep the current flat record layout, and change this check to be: (define (record-internal? obj) (and (struct? obj) (eq? (struct-vtable (struct-vtable obj)) record-type-vtable))) What kind of performance do you get there? Andy -- http://wingolog.org/