If you don't mind to add Gauche-specific code in cond-expand, this would extend builtin equal? to ilists:

(cond-expand
  (gauche
    (define-method object-equal? ((a <ilist>) (b <ilist>))
       (and (equal? (icar a) (icar b))
               (equal? (icdr a) (icdr b))))))




On Tue, May 9, 2017 at 11:45 AM, John Cowan <xxxxxx@ccil.org> wrote:

On Tue, May 9, 2017 at 5:06 PM, Peter Lane <xxxxxx@peterlane.info> wrote:

Does this sound a reasonable way forward to manage equality with ilists?  Or does anyone have an alternative technique they are using?

In retrospect, I think that was bad advice:  instead, a make-ipair-comparator function should be written for the SRFI 128 framework, based on make-list-comparator. 

(The below .sig was randomly chosen, and does not refer to you!  Franklin Knight Lane narrowly lost the 1902 race for governor of California.)

-- 
John Cowan          http://vrici.lojban.org/~cowan        xxxxxx@ccil.org
    "Mr. Lane, if you ever wish anything that I can do, all you will have
        to do will be to send me a telegram asking and it will be done."
    "Mr. Hearst, if you ever get a telegram from me asking you to do
        anything, you can put the telegram down as a forgery."