0 | module Control.RIO.Console
14 | record ConsoleOut where
15 | constructor MkConsoleOut
16 | putStr_ : String -> IO ()
17 | putErr_ : String -> IO ()
22 | stdOut = MkConsoleOut putStr (\s => ignore $
fPutStr stderr s)
26 | cputStr : ConsoleOut => HasIO io => String -> io ()
27 | cputStr s = liftIO $
putStr_ %search s
32 | cputStrLn : ConsoleOut => HasIO io => String -> io ()
33 | cputStrLn s = cputStr $
s ++ "\n"
37 | cprint : ConsoleOut => Show a => HasIO io => a -> io ()
38 | cprint = cputStr . show
43 | cprintLn : ConsoleOut => Show a => HasIO io => a -> io ()
44 | cprintLn = cputStrLn . show
48 | cputErr : ConsoleOut => HasIO io => String -> io ()
49 | cputErr s = liftIO $
putErr_ %search s
54 | cputErrLn : ConsoleOut => HasIO io => String -> io ()
55 | cputErrLn s = cputErr $
s ++ "\n"
59 | cprintErr : ConsoleOut => Show a => HasIO io => a -> io ()
60 | cprintErr = cputErr . show
65 | cprintErrLn : ConsoleOut => Show a => HasIO io => a -> io ()
66 | cprintErrLn = cputErrLn . show
74 | record ConsoleIn where
75 | constructor MkConsoleIn
77 | getLine_ : IO String
82 | stdIn = MkConsoleIn getChar getLine
86 | cgetLine : ConsoleIn => HasIO io => io String
87 | cgetLine = liftIO $
getLine_ %search
91 | cgetChar : ConsoleIn => HasIO io => io Char
92 | cgetChar = liftIO $
getChar_ %search
99 | record Console where
100 | constructor MkConsole
106 | stdIO = MkConsole stdIn stdOut
108 | export %hint %inline
109 | consoleOut : Console -> ConsoleOut
112 | export %hint %inline
113 | consoleIn : Console -> ConsoleIn