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.