Zipping gives up some information in exchange for greatly increased speed. This is not always desirable, but sometimes is very helpful. A good use for zipping might be to run through a time-consuming initial part of a computation that is known to work properly, and stop at the beginning of a part that has a bug. From that point, you might use leaping, creeping, and skipping to locate the bug. The debugger also has these commands that alter the flow of control of your program.
Control is transferred back to the Call port of the box.
It allows you to restart an invocation when, for example, you find yourself leaving with some incorrect result. The state of execution is exactly the same as when you originally called the procedure, except that clauses that have been changed by the database modification predicates will not be changed back to their original state. This is similar to Retry except that it transfers control to the Fail port of the current box. It places your execution in a situation in which it is about to backtrack out of the current invocation, having failed the goal. In contrast, while debug mode is in force, the debugger does nothing until a call is made to a procedure or goal on which you have placed a spypoint.