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