Part 5
Specification Parameter Modes
 

There are 7 parameter modes in RESOLVE. The summary is shown below:

alters x the incoming value of x (#x) will be used by the operation as specified in the ensures clause, and the outgoing value of x is an unspecified value of the same type;
clears x the incoming value of x (#x) will be used by the operation as specified in the ensures clause, and the outgoing value of x will be reset to the initial value as defined in the template of that type;
replaces x the incoming value of x (#x) will be replaced with another value by the operation as specified in the ensures clause, and the outgoing value of x will be that new value;
updates x the outgoing value of x will be an update of the input value as specified in the ensures clause;
evaluates x the caller is expected to provide an expression of the type, and it will be used by the operation as specified in the ensures clause;
preserves x the outgoing value of x will be the same at the incoming value (#x), the value will not be changed during during the execution of the operation;
restores x the outgoing value of x will be the same at the incoming value (#x), the value may be changed during the execution of the operation;