@@ -20,7 +20,7 @@ EXCEPTION
21 EXCEPTION : Type -> EFFECT
21 EXCEPTION : Type -> EFFECT
23− raise : a -> { [EXCEPTION a ] } Eff m b
23+ raise : a -> Eff b [EXCEPTION a]
25 instance Handler (Exception a) Maybe
25 instance Handler (Exception a) Maybe
26 instance Handler (Exception a) List
26 instance Handler (Exception a) List
@@ -42,18 +42,17 @@ FILE\_IO
43 data OpenFile : Mode -> Type
43 data OpenFile : Mode -> Type
45− open : Handler FileIO e => String -> (m : Mode) ->
45+ open : (fname : String)
46− { [FILE_IO ()] ==>
46+ -> (m : Mode)
47− {ok} [FILE_IO (if ok then OpenFile m else ())] } Eff e Bool
47+ -> Eff Bool [FILE_IO ()]
48− close : Handler FileIO e =>
48+ (\res => [FILE_IO (case res of
49− { [FILE_IO (OpenFile m)] ==> [FILE_IO ()] } Eff e ()
51+ close : Eff () [FILE_IO (OpenFile m)] [FILE_IO ()]
51− readLine : Handler FileIO e =>
52− { [FILE_IO (OpenFile Read)] } Eff e String
53+ readLine : Eff String [FILE_IO (OpenFile Read)]
53− writeLine : Handler FileIO e => String ->
54− { [FILE_IO (OpenFile Write)] } Eff e ()
54+ writeLine : String -> Eff () [FILE_IO (OpenFile Write)]
55− eof : Handler FileIO e =>
55+ eof : Eff Bool [FILE_IO (OpenFile Read)]
56− { [FILE_IO (OpenFile Read)] } Eff e Bool
58 instance Handler FileIO IO
57 instance Handler FileIO IO
@@ -70,9 +69,9 @@ RND
71 RND : EFFECT
70 RND : EFFECT
73− srand : Integer -> { [RND] } Eff m ()
72+ srand : Integer -> Eff m () [RND]
74− rndInt : Integer -> Integer -> { [RND] } Eff m Integer
73+ rndInt : Integer -> Integer -> Eff m Integer [RND]
75− rndFin : (k : Nat) -> { [RND] } Eff m (Fin (S k))
74+ rndFin : (k : Nat) -> Eff m (Fin (S k)) [RND]
77 instance Handler Random m
76 instance Handler Random m
@@ -87,7 +86,7 @@ SELECT
88 SELECT : EFFECT
87 SELECT : EFFECT
90− select : List a -> { [SELECT] } Eff m a
89+ select : List a -> Eff m a [SELECT]
92 instance Handler Selection Maybe
91 instance Handler Selection Maybe
93 instance Handler Selection List
92 instance Handler Selection List
@@ -103,10 +102,10 @@ STATE
104 STATE : Type -> EFFECT
103 STATE : Type -> EFFECT
106− get : { [STATE x] } Eff m x
105+ get : Eff m x [STATE x]
107− put : x -> { [STATE x] } Eff m ()
106+ put : x -> Eff m () [STATE x]
108− putM : y -> { [STATE x] ==> [STATE y] } Eff m ()
107+ putM : y -> Eff m () [STATE x] [STATE y]
109− update : (x -> x) -> { [STATE x] } Eff m ()
108+ update : (x -> x) -> Eff m () [STATE x]
111 instance Handler State m
110 instance Handler State m
@@ -122,12 +121,12 @@ STDIO
123 STDIO : EFFECT
122 STDIO : EFFECT
125− putChar : Handler StdIO m => Char -> { [STDIO] } Eff m ()
124+ putChar : Handler StdIO m => Char -> Eff m () [STDIO]
126− putStr : Handler StdIO m => String -> { [STDIO] } Eff m ()
125+ putStr : Handler StdIO m => String -> Eff m () [STDIO]
127− putStrLn : Handler StdIO m => String -> { [STDIO] } Eff m ()
126+ putStrLn : Handler StdIO m => String -> Eff m () [STDIO]
129− getStr : Handler StdIO m => { [STDIO] } Eff m String
128+ getStr : Handler StdIO m => Eff m String [STDIO]
130− getChar : Handler StdIO m => { [STDIO] } Eff m Char
129+ getChar : Handler StdIO m => Eff m Char [STDIO]
132 instance Handler StdIO IO
131 instance Handler StdIO IO
133 instance Handler StdIO (IOExcept a)
132 instance Handler StdIO (IOExcept a)
@@ -145,9 +144,9 @@ SYSTEM
146 SYSTEM : EFFECT
145 SYSTEM : EFFECT
148− getArgs : Handler System e => { [SYSTEM] } Eff e (List String)
147+ getArgs : Handler System e => Eff e (List String) [SYSTEM]
149− time : Handler System e => { [SYSTEM] } Eff e Int
148+ time : Handler System e => Eff e Int [SYSTEM]
150− getEnv : Handler System e => String -> { [SYSTEM] } Eff e (Maybe String)
149+ getEnv : Handler System e => String -> Eff e (Maybe String) [SYSTEM]
152 instance Handler System IO
151 instance Handler System IO
153 instance Handler System (IOExcept a)
152 instance Handler System (IOExcept a)