module Return: BatReturn
type 'a
t
A label which may be used to return values of type 'a
val label : ('a t -> 'a) -> 'a
label f
creates a new label x
and invokes
f x
. If, during the execution of f
, return x v
is invoked, the execution of f x
stops
immediately and label f
returns v
.
Otherwise, if f x
terminates normally and
returns y
, label f
returns y
.
Calling return x v
from outside scope f
is a run-time error and causes termination
of the program.
val with_label : ('a t -> 'a) -> 'a
as label
val return : 'a t -> 'a -> 'b
Return to a label. return l v
returns
to the point where label l
was obtained
and produces value l
.
Calling return l v
from outside the scope
of l
(i.e. the call to function label
which produced l
) is a run-time error
and causes termination of the program.