Things vs. people on supporters

Why do the first and third of the following conditions work, but not the second? That is, why can you write a condition about an object on a supporter (or in a container) or a person in a room, but not, apparently, about a person on a supporter?

[code]The park is a room.

The bench is an enterable supporter in the park.

Every turn:
if something is on the bench:
say “Something is on the bench.”;
if someone is on the bench:
say “Someone is on the bench.”;
if someone is in the park:
say “Someone is in the park.”

Alice is on the bench.[/code]

You haven’t told the game that Alice is a person, so it believes she’s a thing. Therefore the first condition is met, but not the second. The third condition is met, not because Alice is in the park, but because the player is.

Also, “in the park” means directly in the room, withou being in or on anything else. If you want the game to recognize that Alice is in the park even though she’s also on the bench, you need to write “if someone is enclosed by the park”.

To debug a situation like this, you can use naming or list-printing:

Every turn: if something (called the item) is on the bench: say "[The item] is on the bench."; if someone (called the sitter) is on the bench: say "[The sitter] is on the bench."; if someone (called the visitor) is in the park: say "[The visitor] is in the park."

or:

When play begins: showme the list of things on the bench; showme the list of people on the bench; showme the list of people in the park;

…Dammit, that’s what I get for trying to error trap late at night. I did have a real problem and I’ll post it as soon as I can actually replicate it.

EDIT: Never mind, found it. It did behave strikingly like the above, but for different reasons.