On Sat, Sep 10, 2022 at 3:30 AM Marc Nieper-Wißkirchen <
xxxxxx@gmail.com> wrote:
My initial comment that it can return `#t` on all procedures was in
the context of your Chicken implementation where all procedures are
tagged (possibly with some unspecified value).
Ah, I didn't understand that. But I do not read Chicken's native system as meaning that all procedures are tagged. In particular, (procedure-data 5) also returns #f, but not because 5 is a tagged procedure.
(In R6RS, an assertion violation would be raised per section 5.4 of the report.)
I have modified my implementation of procedure-tag to call extended-procedure? and signal an error if it returns #f.