definition module StdIOMonad // Deze module verpakt een aantal StdFile functies in een monadische jas import StdMonad, StdMaybeMonad :: IO a :: Void = Void :: Filemode = Lees | Schrijf :: Filenaam :== String :: Filehandle // voer monadische I/O actie uit op de wereld: //doIO :: (IO a) *World -> (a,*World) // 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