what should be a valid object and where should be either a valid
#-1 (denoting a location of `nowhere'); otherwise
E_INVARG is raised. The programmer must be either the owner of
what or a wizard; otherwise,
E_PERM is raised.
If where is a valid object, then the verb-call
is performed before any movement takes place. If the verb returns a
false value and the programmer is not a wizard, then where is
considered to have refused entrance to what;
E_NACC. If where does not define an
accept verb, then it
is treated as if it defined one that always returned false.
If moving what into where would create a loop in the containment
hierarchy (i.e., what would contain itself, even indirectly), then
E_RECMOVE is raised instead.
The `location' property of what is changed to be where, and the `contents' properties of the old and new locations are modified appropriately. Let old-where be the location of what before it was moved. If old-where is a valid object, then the verb-call
is performed and its result is ignored; it is not an error if old-where does not define a verb named `exitfunc'. Finally, if where and what are still valid objects, and where is still the location of what, then the verb-call
is performed and its result is ignored; again, it is not an error if where does not define a verb named `enterfunc'.