Listing: 1 MODULE Showcase3; 2 3 (* Step-10 tour: module BEGIN bodies run at startup in declaration order, 4 cross-module reads, and calls to the module's own procedures 5 (plain and M.-qualified) from inside its init body. *) 6 7 MODULE A EXPORT x; 8 VAR x : INTEGER; 9 BEGIN 10 x := 1 11 END A; 12 13 MODULE B EXPORT y; 14 VAR y : INTEGER; 15 BEGIN 16 y := A.x + 10 17 END B; 18 19 MODULE C EXPORT cnt, Inc; 20 VAR cnt : INTEGER; 21 PROCEDURE Inc; 22 BEGIN 23 cnt := cnt + 5 24 END Inc; 25 BEGIN 26 Inc(); 27 C.Inc() 28 END C; 29 30 MODULE D EXPORT val; 31 VAR val : INTEGER; 32 BEGIN 33 val := 42 34 END D; 35 36 VAR total : INTEGER; 37 VAR ExitCode : INTEGER; 38 39 BEGIN 40 total := 0; 41 WriteString("show3"); 42 C.Inc(); 43 total := A.x * 100 + B.y + C.cnt + D.val; 44 WriteInt(total); 45 ExitCode := total 46 END Showcase3. 0 errors