I/O in Modula-3 is done through the use of reader and writer abstractions. A reader is a character input stream, and a writer is a character output stream. The Stdio interface defines a reader stdin for standard input (normally the keyboard) and a writer stdout for standard output (the terminal output).
The most basic I/O routines for readers and writers are packaged in the IO module. More flexible I/O routines are available from the Rd, Wr, and Lex interfaces.