interface FileIO : List Error -> Type
withFile : String -> Mode -> (IOError -> App e a) -> (File -> App e a) -> App e a
fGetStr : File -> App e String
fGetChars : File -> Int -> App e String
fGetChar : File -> App e Char
fPutStr : File -> String -> App e ()
fPutStrLn : File -> String -> App e ()
fflush : File -> App e ()
fEOF : File -> App e Bool
withFile : FileIO e => String -> Mode -> (IOError -> App e a) -> (File -> App e a) -> App e a
fGetStr : FileIO e => File -> App e String
fGetChars : FileIO e => File -> Int -> App e String
fGetChar : FileIO e => File -> App e Char
fPutStr : FileIO e => File -> String -> App e ()
fPutStrLn : FileIO e => File -> String -> App e ()
fflush : FileIO e => File -> App e ()
fEOF : FileIO e => File -> App e Bool
readFile : FileIO e => String -> App e String
withFileIO : Has [PrimIO] e => App (IOError :: e) a -> (a -> App e b) -> (IOError -> App e b) -> App e b