packages feed

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