"you can't see any such thing" when things are visible

I have a bit of an odd case I don’t understand. Take this example:


The desk, map, and file are in a room called HQ. 

The officer is a man in HQ. 

test me with "give desk to officer / give officer to desk"

So why the ‘you can’t see any such thing’ message? Trace on shows that ‘give officer to desk’ fails when parsing the command. Is this because you can’t implicitly take a person? How do I intercept that library failure in this case? Should I catch it in the printing the parser error activity?

The reason for this seemingly nonsensical message is the way the “giving it to” action is defined in the Standard Rules:

When you type “give officer to desk,” the program looks around for someone called “desk” to whom it can move the officer; upon finding no such person, the response “You can’t see any such thing” is logically (from the program’s point of view) the best choice for a comment. The same thing happens with any similarly defined action, for example the “showing it to” action.

You can get rid of this behavior to obtain a more appropriate error message by adding a new line:

Understand "give [something] to [something]" as giving it to.

Great explanation Endosphere, thank you!