Answer (1 of 9): I think there are two intertwined questions to address here: * Why do we need a special type to do IO? * What do monads have to do with this? A Type for IO The best way to start is to forget about monads altogether. Instead, look at the first part of your question: why do we n...