{
 This is a test of unnested non-recursive procedures with parameters
 and local variables. Parameter error
}
$c+
module test16_1 { parameter error}
private
  integer i;
  constant power = 4;
  Boolean b;
  
  typedefinition tuple [procedure findpower(value integer in; reference integer power)] Errors;
  
  Errors err;
  
  procedure Errors@findpower
   integer j;
  begin 
    j := 1;
    power := 1;
    do j <= in ->	power := power * 2;
			j := j+1;
    od;
    return;
  end;

begin
  write 'Calculate the first 5 powers of 2:';
  i := 1;
  do i <= 5 ->
	err!findpower(b, power); { 2 errors, integer parameter required, variable required. }
	err!findpower(i); { error, wrong number of arguments}
	write '2**',i,' = ', power;
	i := i+1;
  od;
end. { three errors}
