lhc-0.6.20081127: src/CharIO.hs
{-# LANGUAGE CPP, ScopedTypeVariables #-}
module CharIO(
UTF8.putStr,
UTF8.putStrLn,
UTF8.hPutStrLn,
putErr,
putErrLn,
putErrDie,
UTF8.readFile,
UTF8.print,
UTF8.hGetContents,
) where
import Control.Exception as Ex
import System
import qualified IO
import qualified System.IO.UTF8 as UTF8
#if __GLASGOW_HASKELL__ >= 610
flushOut = Ex.catch (IO.hFlush IO.stdout) (\(e::SomeException) -> return ())
#else
flushOut = Ex.catch (IO.hFlush IO.stdout) (\_ -> return ())
#endif
putErr s = flushOut >> UTF8.hPutStr IO.stderr s
putErrLn s = flushOut >> UTF8.hPutStrLn IO.stderr s
putErrDie s = flushOut >> UTF8.hPutStrLn IO.stderr s >> System.exitFailure