Hello!

Recently I noticed, that srfi-64 `assert-equal` macro do not use
`equal?` that was redefinded via `define-method` in scope of invocation
of `assert-equal`. It means, that

        (define e1 (make <foo> #:x 2))
        (define e2 (make <foo> #:x 2))
        (equal? e1 e2) ;; Overloaded to return #t
        (assert-equal (make <foo> #:x 2) (make <foo> #:x 2)) ;; fails

Why it happens, is clear. Since scheme macros are hygienic, equal? in
expansion of `assert-equal` is sealed to refer to (@@ (srfi srfi-64)
equal?). I belive, in presence of goops, it would be nice add

        (define-syntax equal?
            (identifier-syntax (module-ref (current-module) 'equal?))

I do not see, what would it break, but maybe I am missing something?

PS. Please, keep me in CC.

--
Best regards, Dmitry Bogatov <kact...@gnu.org>,
Free Software supporter, esperantisto and netiquette guardian.
GPG: 54B7F00D

Attachment: pgpdXTpBK0RLx.pgp
Description: PGP signature

Reply via email to