ML has a sophisticated exception --handling facility. Certain functions yield runtime errors on certain arguments and are therefore said to fail on these arguments. The result of a failure is a token, usually the function name. The token returned by a failure can be specified by using the construct failwith in a fashion to be described later.
A special operator allows one to ``catch'' failures. The
combination
has the value
unless
results in a failure, in
which case it has the value of
.
As we shall see,
the exception--trap mechanism is useful in writing tactics.