That first line is not appropriate. But ‘all’ should obviously apply to the shopping bag after a ‘drop all’ command. Also, if I’m holding the shopping bag (with stuff in it), ‘take all’ quite properly doesn’t tell me, “You’re already holding the shopping bag.” So I know that ‘all’ will sometimes ignore an object.
How do I get ‘all’ to ignore the container in a ‘put all in container’ command?
This should really be changed in the library; the existing code doesn’t do what it should. Actually this still needs a bit more work to handle gracefully the situation when there are no suitable direct objects for a PUT ALL IN X command, but it’s a move in the right direction.
I’ve now implemented an improved version of this change in the library (which deals with PUT ALL ON/UNDER/BEHIND as well as PUT ALL IN) and have uploaded it to GitHub.