return ["(" <expr> ["," <expr>]* ")"]
The return statement terminates execution of the containing
procedure or iterator. There must be the same number of expressions
as there are return result types listed in the routine's header, and
their types must be subtypes of the corresponding listed types. (If
return is used in an iterator, no results can be given;
iterators do not have return result types.) The expressions (if any)
are evaluated in an unspecified order, and the objects obtained become
the results of the procedure.