definition module StdIOMonad // Deze module verpakt een aantal StdFile functies in een monadische jas import StdMonad, StdMaybe :: IO a :: *W :: Void = Void :: Filemode = Lees | Schrijf :: Filenaam :== String :: Filehandle :== String // voer monadische I/O actie uit op de wereld: doIO:: (IO a) *World -> *(a, *W) // IO is een monad: instance return IO instance >>= IO // lees regel van de console: read :: IO String // schrijf regel naar de console: write :: String -> IO Void // open de file met gegeven filenaam en mode: open :: Filenaam Filemode -> IO (Maybe Filehandle) // sluit de file met gegeven filenaam: close :: Filehandle -> IO Bool // bepaal of het lezen van de file klaar is: eof :: Filehandle -> IO Bool // lees een regel van een file: readline :: Filehandle -> IO (Maybe String) // schrijf een regel naar een file: writeline :: String Filehandle -> IO Bool