Procedure Factoids
Formals can be rank defined
procedure H(var A : [ , ], m : ubyte);
Procedures inherit the region of the call site
procedure AddLast(A : [ ] float): float;
var sum : integer;
begin sum := +<< A; return sum end;
...
for i := 1 to n do
[i..n] ... AddLast(A) ...
Procedures can be recursive
Use prototypes to specify a procedure header
prototype H(var A : [ , ], m : ubyte);