rare shit
[fp1415.git] / fp2 / week2 / mart / oldold / old / StdIOMonad.dcl
1 definition module StdIOMonad
2
3 // Deze module verpakt een aantal StdFile functies in een monadische jas
4
5 import StdMonad, StdMaybeMonad
6
7 :: IO a
8 :: Void = Void
9 :: Filemode = Lees | Schrijf
10 :: Filenaam :== String
11 :: *Filehandle
12
13 // voer monadische I/O actie uit op de wereld:
14 //doIO :: (IO a) *World -> *(a,*World)
15
16 // IO is een monad:
17 //instance return IO
18 //instance >>= IO
19
20 // lees regel van de console:
21 read :: IO String
22
23 /*
24 // schrijf regel naar de console:
25 write :: String -> IO Void
26
27 // open de file met gegeven filenaam en mode:
28 open :: Filenaam Filemode -> IO (Maybe Filehandle)
29
30 // sluit de file met gegeven filenaam:
31 close :: Filehandle -> IO Bool
32
33 // bepaal of het lezen van de file klaar is:
34 eof :: Filehandle -> IO Bool
35
36 // lees een regel van een file:
37 readline :: Filehandle -> IO (Maybe String)
38
39 // schrijf een regel naar een file:
40 writeline :: String Filehandle -> IO Bool*/