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).81Note that older versions
also unify Ball with 0
. Testing whether or not
shift happened on Ball however is always ambiguous.