begin comment this example was provided by Bob Tennent <rdt@cs.queensu.ca> to demonstrate non-trivial using call-by-name parameters., this program doesn't work properly with nase-a60 interpreter, however, it does work with the marst translator., for further discussion see: J.C.Reynolds. Syntactic control of interference. In: Conference Record of the 5th Annual ACM Symposium on Principles of Programming Languages, pp.39-46, Tucson, Arizona, January 1978. ACM, New York. P.W.O'Hearn and R.D.Tennent. Parametricity and local variables. J.ACM, 42(3):658-709, May 1995. Preliminary version appeared in Proceedings of POPL 93; procedure MAKECOUNTER(USER); procedure USER; begin integer N; procedure INC; begin N ≔ N-1 end; N ≔ 0; USER(-N, INC) end; procedure MYUSER(VAL, INC); integer VAL; procedure INC; begin INC; INC; OUTINTEGER(1, VAL); INC; INC; OUTINTEGER(1, VAL) end; MAKECOUNTER(MYUSER); OUTSTRING(1, “\n”) end