I wrote:

Unfortunately, srfi-101:equal? is not necessarily compatible with r7rs:equal?.

Fortunately, this turns out not to matter.  The Red Edition specifies that all procedure names with the exceptions of make-rlist, list->rlist, and rlist->list are simply prefixed with "r", so `requal?` does not collide with `equal?`


To begin with, the Red Edition ballot specifies that with the 

On Thu, Aug 27, 2020 at 3:44 AM Marc Nieper-Wißkirchen <xxxxxx@nieper-wisskirchen.de> wrote:

Please also see the last comment/question here, which hasn't been answered yet: https://groups.google.com/g/scheme-reports-wg2/c/NZA9CIMRl48/m/zJ06IprvAwAJ

[quoted from that post:]

1) Is the quote syntax, which is defined by SRFI 101, being renamed
to `rquote`?

Yes. The Red Edition says "procedure names", but that is an oversight for "identifier names".
 
How many implementations implement this properly? In the
context of R7RS, which allows shared and circular structure in
constants, SRFI 101's quote may need to be restricted to those
constants where the shared or circular structure does not extend to
pairs.

That is already the case, because srfi-101:quote takes an R6RS datum, which excludes shared and circular structure.
 
The SRFI 116/(scheme ipair) counterpart is `iq' (for which
shared and circular structure would, in principle, be no problem). 
For
consistency and ease of use, it would at least make sense to have the
name `rq'.

Too late now.  In any case they are different:  iq is used only to produce an immutable list:  (iq 32) is an error.

 
(2) Renaming the `equal?' to `requal?', which only differs from
`equal?' that it can also compare random access lists, doesn't make
much sense, does it?.

It differs from r6rs:equal? in that it descends into random-access pairs but *not* ordinary Scheme pairs, assuming these types are disjoint (they need not be).  This is true because in SRFI 101, "pair" is defined to mean "random access pair".  The two functions descend into vectors and strings and do not descend into any other types.

In any case, the r7rs:equal? procedure descends into pairs, vectors, and strings, cannot descend into the standard Scheme atomic types, and may descend into any other type.

In the spirit of the other data structure
libraries voted into R7RS-large, it makes much more sense to add a
procedure like `rlist=', which is similar to `ilist='. And shouldn't
the SRFI 116-post finalization note about `equal?` apply to SRFI 101
as well?

That seems appropriate.  I'll write a PFN about that.
 
P.S.: SRFI 116's sample implementation of `iq' is also not fully satisfactory:
(define (f) (iq (42)))
(eq? (f) (f)) ;=> ???

Why should it?  Given (define (f) 1.0), (eq? (f) (f) is can also be either #t or #f.



John Cowan          http://vrici.lojban.org/~cowan        xxxxxx@ccil.org
May the hair on your toes never fall out!  --Thorin Oakenshield (to Bilbo)