| 12 | | class (Typeable a) => Class a where |
| 13 | | iType :: a -> Type |
| 14 | | iType = const $ mkType "IO" |
| 15 | | fetch :: a -> Eval VHandle |
| 16 | | store :: a -> VHandle -> Eval () |
| 17 | | write :: a -> VStr -> Eval VInt |
| 18 | | write = error "" |
| 19 | | print :: a -> [Val] -> Eval VBool |
| 20 | | print gv vals = do |
| 21 | | hdl <- fetch gv |
| | 5 | class (Typeable a) => HandleClass a where |
| | 6 | handle_iType :: a -> Type |
| | 7 | handle_iType = const $ mkType "IO" |
| | 8 | handle_fetch :: a -> Eval VHandle |
| | 9 | handle_store :: a -> VHandle -> Eval () |
| | 10 | handle_write :: a -> VStr -> Eval VInt |
| | 11 | handle_write = error "" |
| | 12 | handle_print :: a -> [Val] -> Eval VBool |
| | 13 | handle_print gv vals = do |
| | 14 | hdl <- handle_fetch gv |
| 26 | | printf :: a -> VStr -> [Val] -> Eval VBool |
| 27 | | printf = error "" |
| 28 | | read :: a -> VInt -> Eval (VInt, VStr) |
| 29 | | read = error "" |
| 30 | | readLine :: a -> Eval VStr |
| 31 | | readLine = error "" |
| 32 | | getC :: a -> Eval VStr |
| 33 | | getC = error "" |
| 34 | | close :: a -> Eval () |
| 35 | | close gv = do |
| 36 | | hdl <- fetch gv |
| | 19 | handle_printf :: a -> VStr -> [Val] -> Eval VBool |
| | 20 | handle_printf = error "" |
| | 21 | handle_read :: a -> VInt -> Eval (VInt, VStr) |
| | 22 | handle_read = error "" |
| | 23 | handle_readLine :: a -> Eval VStr |
| | 24 | handle_readLine = error "" |
| | 25 | handle_getC :: a -> Eval VStr |
| | 26 | handle_getC = error "" |
| | 27 | handle_close :: a -> Eval () |
| | 28 | handle_close gv = do |
| | 29 | hdl <- handle_fetch gv |
| 38 | | binmode :: a -> Layer -> Eval () |
| 39 | | binmode _ _ = return () |
| 40 | | open :: a -> Layer -> FilePath -> Eval VBool |
| 41 | | open = error "" |
| 42 | | eof :: a -> Eval VBool |
| 43 | | eof = error "" |
| 44 | | fileNo :: a -> Eval FileDescriptor |
| 45 | | fileNo = error "" |
| 46 | | seek :: a -> VInt -> SeekMode -> Eval VBool |
| 47 | | seek = error "" |
| 48 | | tell :: a -> Eval VInt |
| 49 | | tell = error "" |
| | 31 | handle_binmode :: a -> Layer -> Eval () |
| | 32 | handle_binmode _ _ = return () |
| | 33 | handle_open :: a -> Layer -> FilePath -> Eval VBool |
| | 34 | handle_open = error "" |
| | 35 | handle_eof :: a -> Eval VBool |
| | 36 | handle_eof = error "" |
| | 37 | handle_fileNo :: a -> Eval FileDescriptor |
| | 38 | handle_fileNo = error "" |
| | 39 | handle_seek :: a -> VInt -> SeekMode -> Eval VBool |
| | 40 | handle_seek = error "" |
| | 41 | handle_tell :: a -> Eval VInt |
| | 42 | handle_tell = error "" |
| | 43 | |
| | 44 | instance HandleClass IHandle where |
| | 45 | handle_fetch = return |
| | 46 | handle_store = error "store" |
| | 47 | |