But every I/O event is also a sort of side-effect. I/O changes the world rather than being part of a computation per se. Naturally , there are many times when what you want to do is change the world in some manner( if not , you cannot ever know a program has run )