begin comment LIBRARY 1; integer I, CASE; boolean B; real X; integerprocedure P(K, Q); value K; integer K; integerprocedure Q; comment (X1) : 'VALUE' X1 : 'REAL' X1 ; P ≔ if K = 1 then Q(I) else if K = 2 then Q(B) else if K = 3 then Q(X) else Q(Q(20)); integerprocedure Q1(I); value I; integer I; Q1 ≔ 100 + I; integerprocedure Q2(B); value B; boolean B; Q2 ≔ 200 + (if B then 1 else 0); integerprocedure Q3(X); value X; real X; Q3 ≔ 300 + X; procedure FAIL(M, N); value M, N; integer M, N; if M ≠ N then begin OUTREAL(99, M); OUTREAL(99, N); OUTREAL(99, CASE) end else CASE ≔ CASE + 1; I ≔ 1; X ≔ 10·4; CASE ≔ 0; B ≔ false; FAIL(P(1, Q1), 101); FAIL(P(4, Q1), 220); FAIL(P(2, Q2), 200); FAIL(P(3, Q3), 310); FAIL(P(4, Q3), 620); OUTREAL(99, CASE) end