total
Lib.total : ('a -> 'b) -> 'a -> 'b option
Converts a partial function to a total function.
In ML, there are two main ways for a function to signal that it has been
called on an element outside of its intended domain of application:
exceptions and options. The function total maps a function that may
raise an exception to one that returns an element in the option type.
Thus, if f x results in any exception other than Interrupt being
raised, then total f x returns NONE. If f x raises Interrupt,
then total f x likewise raises Interrupt. If f x returns y, then
total f x returns SOME y.
The function total has an inverse partial. Generally speaking,
(partial err o total) f equals f, provided that err is the only
exception that f raises. Similarly, (total o partial err) f is equal
to f.
Failure
When application of the first argument to the second argument raises
Interrupt.
Example
> 3 div 0;
Exception- Div raised
> total (op div) (3,0);
val it = NONE: int option
> (partial Div o total) (op div) (3,0);
Exception- Div raised