+#ifdef __NHC__
+import IO
+ ( Handle ()
+ , HandlePosn ()
+ , IOMode (ReadMode,WriteMode,AppendMode,ReadWriteMode)
+ , BufferMode (NoBuffering,LineBuffering,BlockBuffering)
+ , SeekMode (AbsoluteSeek,RelativeSeek,SeekFromEnd)
+ , stdin, stdout, stderr
+ , openFile -- :: FilePath -> IOMode -> IO Handle
+ , hClose -- :: Handle -> IO ()
+ , hFileSize -- :: Handle -> IO Integer
+ , hIsEOF -- :: Handle -> IO Bool
+ , isEOF -- :: IO Bool
+ , hSetBuffering -- :: Handle -> BufferMode -> IO ()
+ , hGetBuffering -- :: Handle -> IO BufferMode
+ , hFlush -- :: Handle -> IO ()
+ , hGetPosn -- :: Handle -> IO HandlePosn
+ , hSetPosn -- :: HandlePosn -> IO ()
+ , hSeek -- :: Handle -> SeekMode -> Integer -> IO ()
+ , hWaitForInput -- :: Handle -> Int -> IO Bool
+ , hGetChar -- :: Handle -> IO Char
+ , hGetLine -- :: Handle -> IO [Char]
+ , hLookAhead -- :: Handle -> IO Char
+ , hGetContents -- :: Handle -> IO [Char]
+ , hPutChar -- :: Handle -> Char -> IO ()
+ , hPutStr -- :: Handle -> [Char] -> IO ()
+ , hPutStrLn -- :: Handle -> [Char] -> IO ()
+ , hPrint -- :: Handle -> [Char] -> IO ()
+ , hReady -- :: Handle -> [Char] -> IO ()
+ , hIsOpen, hIsClosed -- :: Handle -> IO Bool
+ , hIsReadable, hIsWritable -- :: Handle -> IO Bool
+ , hIsSeekable -- :: Handle -> IO Bool
+ , bracket
+
+ , IO ()
+ , FilePath -- :: String
+ )
+import NHC.IOExtras (fixIO, hPutBuf, hGetBuf)
+import NHC.FFI (Ptr)
+#endif