[A crude example:]
A table is a supporter in the room.
Keys are on the table.
Rule for printing the name of something (called banana):
Say “[banana]”.
[A crude example:]
A table is a supporter in the room.
Keys are on the table.
Rule for printing the name of something (called banana):
Say “[banana]”.
That is indeed a bug… that is, the code you posted is erroneous. Your rule is effectively a function that calls itself. Don’t do that.
The default printing-the-name rule prints the printed name of the object. (This is a property that all objects have.) So you could write this:
Rule for printing the name of something (called banana):
say "[printed name of banana]".
That would replicate the behavior of the standard library. To see a visible effect, try:
Rule for printing the name of something (called banana):
say "*[printed name of banana]*".
It may be simpler to do what you want with before/after activity rules:
Before printing the name of something:
say "<<".
After printing the name of something:
say ">>".