Hi,

Judy Hawkins <[email protected]> writes:

> (define r:type (make-record-type "good-rec" '(laugh sleep)))

[...]

>  guile> (load "rb.scm")
>  Good record?
>  #t
>  #<good-rec laugh: giggle sleep: dream>
>
>  guile> (r:g:laugh Keep-r1)
>  "giggle"
>
>  guile> (load "rb.scm")
>  Keep-r1 already has the record
>  Good record?
>  #f
>  #<good-rec laugh: giggle sleep: dream>
>
>  guile> (r:g:laugh Keep-r1)
>
>  ERROR: In procedure %record-type-check:
>  ERROR: Wrong type record (want `"good-rec"'): #<good-rec laugh: giggle 
> sleep: dream>
>  ABORT: (wrong-type-arg)
>  guile> 
>
>  what I expected was for (r:g:laugh Keep-r1) to work fine both times.

That's because each load yields a `make-record-type', and the record
type created the second type has the same name as the one created the
first time but it's not `eq?' to it, hence the type mismatch.

Thanks,
Ludo'.



Reply via email to