Availability:built-in
reset(:Goal, 
?Ball, -Continuation)reset(Goal,Continuation,Ball). 
We swapped the argument order for compatibility with catch/3 shift/1 
causes reset/3 
to return, unifying
Continuation with a goal that represents the continuation 
after shift/1. 
In other words, meta-calling Continuation completes the 
execution where shift left it. If Goal does not call shift/1,
Continuation are unified with the integer 0 
(zero).67Note that older versions 
also unify Ball with 0. Testing whether or not 
shift happened on Ball however is always ambiguous.