SYNOPSIS
        void exit(object ob)

DESCRIPTION
        This function was used in compat mode drivers in context
        with moving objects. Nowadays objects are moved by means
        of the H_MOVE_OBJECT0/1 hooks, and use of this lfun is
        up to the mudlib.

        This function was called in the old environment everytime a
        living object ob leaves it.

        The function this_player() will return a random value, don't
        use it at this point.

        WARNING: Using this function is EXTREMELY dangerous. A single
        bug, and you are forever (i.e. until the next reboot occurs)
        caught in the room.

SEE ALSO
        init(A)
