4.6 Procedure and operator declarations

In procedure and operator declarations, if the body of a routine text starts with ’begin’, put it at the same indentation than the pub, proc or op. Otherwise, indent it three spaces to the right relative to the pub, proc or op.

Examples:

{ Body of routine is a `begin'..`end' closed clause }
proc checked_div = (int a,b) int:
begin
      if b = 0 then fatal ("div by zero") fi;
      a % b
end;

{ Body of routine does not start with `begin' }
proc checked_div = (int a,b) int:
   (b = 0 | fatal ("div by zero"); skip | a % b);

{ Body of routine is not a closed clause }
proc checked_div = (int a,b) int:
   if b = 0
   then fatal ("div by zero"); skip
   else a % b
   fi;