#Sometime after Genie 2.1.2 and 2.3.1 the compiler learned that the following program is not strictly valid. The assignment to nra exports a procedure value out of scope. # [2] PROC INT nra; PROC r = (INT k)VOID: IF k>0 THEN INT a := 0; PROC next random = INT: (a := (a*23 + 3) MOD 1000; a); nra[k] := next random; r(k-1) ELSE INT n := 0; FOR m TO 2 DO TO 3 DO print(nra[m]) OD; print(newline) OD; nra[2]; # give it a head start. # WHILE nra[1] NE nra[2] DO n +:= 1; nra[2] OD; print(n) FI; r(2)