A RETURN statement for a proper procedure has the form:
    RETURN
The statement raises the return-exception without an argument.  It 
is allowed only in the body of a proper procedure.
A RETURN statement for a function procedure has the form:
    RETURN Expr
where Expr is an expression assignable to the result type of 
the procedure.  The statement raises the return-exception with the 
argument Expr.  It is allowed only in the body of a function 
procedure.
Failure to return a value from a function procedure is a checked runtime error.
The effect of raising the return exception is to terminate the current procedure activation. To be precise, a call on a proper procedure with body B is equivalent (after binding the arguments) to:
    TRY B EXCEPT return-exception => (*skip*) END
A call on a function procedure with body B is equivalent to:
    TRY 
      B;  (error: no returned value)  
    EXCEPT 
      return-exception (v) => (the result becomes v)  
    END