rep int :== 4 bytes; rep string :== *[unsigned 4 bytes]ascii; fun read_int(prompt:string):int { decl var x:int; prim "C" (prompt)->(x) { restart:; printf("%s", prompt); fflush(stdout); int num_inputs = scanf("%d", &x); if (num_inputs == 0) { char dummy[100]; scanf("%99s",dummy); // absorb the bad input printf("Sorry, please enter an integer.\n"); goto restart; } }; return x; }; fun print_int(x:int):void { prim "C" (x) { printf("%d", x); }; }; fun print_string(s:string):void { prim "C" (s) { printf("%s", s); }; }; fun main():void { decl x :== read_int(&"Please enter a number: \0"); print_string(&"The number you printed is: \0"); print_int(x); }; main();