Modell: type IO a = State World a 
aber ohne put und get.
readFile :: FilePath -> IO String putStrLn :: String -> IO () main :: IO () main = do cs <- readFile "foo.bar" ; putStrLn cs
Alle „Funktionen``, deren Resultat von der Außenwelt 
(Systemzustand) abhängt oder diesen ändert, haben Resultattyp IO ...
Am Typ einer Funktion erkennt man ihre möglichen Wirkungen bzw. deren garantierte Abwesenheit.