MODULE TFwdProp; // A forward module-level variable inside a compound expression // (`(arr[0] + arr[1]) * 2`): the enclosing nodes are typed InvalidType // at parse time and re-typed by the resolve pass. Exit 42. VAR ExitCode : INTEGER; PROCEDURE SetIt; BEGIN z := (arr[0] + arr[1]) * 2 END SetIt; VAR arr : ARRAY [0..3] OF INTEGER; VAR z : INTEGER; BEGIN arr[0] := 10; arr[1] := 11; SetIt; ExitCode := z END TFwdProp.