MODULE Varargs EXPORTS Main; IMPORT IO, Fmt; VAR strings := NEW(REF TEXT); ints := NEW(REF INTEGER); reals := NEW(REF REAL); refarr := ARRAY [1..3] OF REFANY {strings, ints, reals}; PROCEDURE Variable(VAR arr: ARRAY OF REFANY) = BEGIN FOR i := FIRST(arr) TO LAST(arr) DO TYPECASE arr[i] OF | REF TEXT(n) => IO.Put(n^ & "\n"); | REF INTEGER(n) => IO.Put(Fmt.Int(n^) & "\n"); | REF REAL(n) => IO.Put(Fmt.Real(n^) & "\n"); ELSE (* skip *) END; END; END Variable; BEGIN strings^ := "Rosetta"; ints^ := 1; reals^ := 3.1415; Variable(refarr); END Varargs.