diff options
| -rw-r--r-- | lib/scheme/base/50-records.csc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/scheme/base/50-records.csc b/lib/scheme/base/50-records.csc index 2830b3c..e0954d3 100644 --- a/lib/scheme/base/50-records.csc +++ b/lib/scheme/base/50-records.csc @@ -80,7 +80,8 @@ (let ((id *next-type-id*)) (set! *next-type-id* (call-builtin + 1 *next-type-id*)))) (define (pred r) - (call-builtin eq? type-id (call-builtin peek r 0))) + (and (call-builtin eq? 0 (call-builtin typeof r)) + (call-builtin eq? type-id (call-builtin peek r 0)))) (define (constructor field ...) (define r (call-builtin alloc (macro-length (field ...)))) (call-builtin poke type-id r 0) |
