Leave and restart may be used to terminate the execution of a pattern or singular object to start execution from the beginning:
Obj: = Super
Leave and restart may appear at an arbitrary nesting level within Ptn or Obj.
Note. The declarations are only executed when the object is generated -- a restart does not imply re-execution of declarations within Ptn and/or Obj.
i: ? integer
i := i + 1
%if i > 10 %then %leave Loop
Comparison to Beta
In Beta a statement may be labelled - qBeta does not have labelled statements. Instead singular objects may be used as labelled statements.