module System.IO.Handle
(
Handle, hClose,
stdin, stdout, stderr,
IOMode (..),
hGetFileSize, hSetFileSize, fileSize,
isEOF, hIsEOF,
BufferMode (..), hFlush, hSetBuffering, hGetBuffering, hBuffering,
HandlePosn, hGetPosn, hSetPosn,
SeekMode (..), hSeek, hTell,
hIsOpen, hIsClosed, hIsReadable, hIsWritable, hIsSeekable,
hIsTerminalDevice, hSetEcho, hGetEcho, echo,
hWaitForInput, hReady, hLookAhead,
hGetChar, hPutChar, getChar, putChar,
hSetBinaryMode, withBinaryFile, openBinaryFile,
hGetBuf, hGetBufSome, hPutBuf, hPutBufNonBlocking, hGetBufNonBlocking,
openTempFile, openBinaryTempFile, openTempFileWith', openBinaryTempFile',
hSetEncoding, hGetEncoding, encoding,
TextEncoding, mkTextEncoding, localeEncoding, char8, latin1, utf8, utf8_bom,
utf16, utf16le, utf16be, utf32, utf32le, utf32be,
Newline (..), NewlineMode (..), nativeNewline, hSetNewlineMode,
noNewlineTranslation, universalNewlineMode, nativeNewlineMode
)
where
import Prelude ()
import SDP.SafePrelude
import qualified System.IO as IO
import System.IO
(
TextEncoding, Newline (..), NewlineMode (..), localeEncoding, char8, latin1,
Handle, HandlePosn, IOMode (..), BufferMode (..), SeekMode (..),
noNewlineTranslation, universalNewlineMode, nativeNewlineMode, nativeNewline,
utf8, utf8_bom, utf16, utf16le, utf16be, utf32, utf32le, utf32be,
stdin, stdout, stderr
)
import Foreign.Ptr ( Ptr )
import Data.Field
default ()
hClose :: (MonadIO io) => Handle -> io ()
hClose :: Handle -> io ()
hClose = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ()) -> (Handle -> IO ()) -> Handle -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> IO ()
IO.hClose
hGetFileSize :: (MonadIO io) => Handle -> io Integer
hGetFileSize :: Handle -> io Integer
hGetFileSize = IO Integer -> io Integer
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Integer -> io Integer)
-> (Handle -> IO Integer) -> Handle -> io Integer
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> IO Integer
IO.hFileSize
hSetFileSize :: (MonadIO io) => Handle -> Integer -> io ()
hSetFileSize :: Handle -> Integer -> io ()
hSetFileSize = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (Handle -> Integer -> IO ()) -> Handle -> Integer -> io ()
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
... Handle -> Integer -> IO ()
IO.hSetFileSize
fileSize :: (MonadIO io) => Field io Handle Integer
fileSize :: Field io Handle Integer
fileSize = Handle -> io Integer
forall (io :: * -> *). MonadIO io => Handle -> io Integer
hGetFileSize (Handle -> io Integer)
-> (Handle -> Integer -> io ()) -> Field io Handle Integer
forall (m :: * -> *) record a.
Monad m =>
(record -> m a) -> (record -> a -> m ()) -> Field m record a
`sfield` Handle -> Integer -> io ()
forall (io :: * -> *). MonadIO io => Handle -> Integer -> io ()
hSetFileSize
isEOF :: (MonadIO io) => io Bool
isEOF :: io Bool
isEOF = IO Bool -> io Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO IO Bool
IO.isEOF
hIsEOF :: (MonadIO io) => Handle -> io Bool
hIsEOF :: Handle -> io Bool
hIsEOF = IO Bool -> io Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> io Bool) -> (Handle -> IO Bool) -> Handle -> io Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> IO Bool
IO.hIsEOF
hFlush :: (MonadIO io) => Handle -> io ()
hFlush :: Handle -> io ()
hFlush = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ()) -> (Handle -> IO ()) -> Handle -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> IO ()
IO.hFlush
hSetBuffering :: (MonadIO io) => Handle -> BufferMode -> io ()
hSetBuffering :: Handle -> BufferMode -> io ()
hSetBuffering = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (Handle -> BufferMode -> IO ()) -> Handle -> BufferMode -> io ()
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
... Handle -> BufferMode -> IO ()
IO.hSetBuffering
hGetBuffering :: (MonadIO io) => Handle -> io BufferMode
hGetBuffering :: Handle -> io BufferMode
hGetBuffering = IO BufferMode -> io BufferMode
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO BufferMode -> io BufferMode)
-> (Handle -> IO BufferMode) -> Handle -> io BufferMode
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> IO BufferMode
IO.hGetBuffering
hBuffering :: (MonadIO io) => Field io Handle BufferMode
hBuffering :: Field io Handle BufferMode
hBuffering = Handle -> io BufferMode
forall (io :: * -> *). MonadIO io => Handle -> io BufferMode
hGetBuffering (Handle -> io BufferMode)
-> (Handle -> BufferMode -> io ()) -> Field io Handle BufferMode
forall (m :: * -> *) record a.
Monad m =>
(record -> m a) -> (record -> a -> m ()) -> Field m record a
`sfield` Handle -> BufferMode -> io ()
forall (io :: * -> *). MonadIO io => Handle -> BufferMode -> io ()
hSetBuffering
hGetPosn :: (MonadIO io) => Handle -> io HandlePosn
hGetPosn :: Handle -> io HandlePosn
hGetPosn = IO HandlePosn -> io HandlePosn
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO HandlePosn -> io HandlePosn)
-> (Handle -> IO HandlePosn) -> Handle -> io HandlePosn
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> IO HandlePosn
IO.hGetPosn
hSetPosn :: (MonadIO io) => HandlePosn -> io ()
hSetPosn :: HandlePosn -> io ()
hSetPosn = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ()) -> (HandlePosn -> IO ()) -> HandlePosn -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. HandlePosn -> IO ()
IO.hSetPosn
hSeek :: (MonadIO io) => Handle -> IO.SeekMode -> Integer -> io ()
hSeek :: Handle -> SeekMode -> Integer -> io ()
hSeek Handle
hdl = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (SeekMode -> Integer -> IO ()) -> SeekMode -> Integer -> io ()
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
... Handle -> SeekMode -> Integer -> IO ()
IO.hSeek Handle
hdl
hTell :: (MonadIO io) => Handle -> io Integer
hTell :: Handle -> io Integer
hTell = IO Integer -> io Integer
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Integer -> io Integer)
-> (Handle -> IO Integer) -> Handle -> io Integer
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> IO Integer
IO.hTell
hIsOpen :: (MonadIO io) => Handle -> io Bool
hIsOpen :: Handle -> io Bool
hIsOpen = IO Bool -> io Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> io Bool) -> (Handle -> IO Bool) -> Handle -> io Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> IO Bool
IO.hIsOpen
hIsClosed :: (MonadIO io) => Handle -> io Bool
hIsClosed :: Handle -> io Bool
hIsClosed = IO Bool -> io Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> io Bool) -> (Handle -> IO Bool) -> Handle -> io Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> IO Bool
IO.hIsClosed
hIsReadable :: (MonadIO io) => Handle -> io Bool
hIsReadable :: Handle -> io Bool
hIsReadable = IO Bool -> io Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> io Bool) -> (Handle -> IO Bool) -> Handle -> io Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> IO Bool
IO.hIsReadable
hIsWritable :: (MonadIO io) => Handle -> io Bool
hIsWritable :: Handle -> io Bool
hIsWritable = IO Bool -> io Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> io Bool) -> (Handle -> IO Bool) -> Handle -> io Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> IO Bool
IO.hIsWritable
hIsSeekable :: (MonadIO io) => Handle -> io Bool
hIsSeekable :: Handle -> io Bool
hIsSeekable = IO Bool -> io Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> io Bool) -> (Handle -> IO Bool) -> Handle -> io Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> IO Bool
IO.hIsSeekable
hIsTerminalDevice :: (MonadIO io) => Handle -> io Bool
hIsTerminalDevice :: Handle -> io Bool
hIsTerminalDevice = IO Bool -> io Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> io Bool) -> (Handle -> IO Bool) -> Handle -> io Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> IO Bool
IO.hIsTerminalDevice
hSetEcho :: (MonadIO io) => Handle -> Bool -> io ()
hSetEcho :: Handle -> Bool -> io ()
hSetEcho = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (Handle -> Bool -> IO ()) -> Handle -> Bool -> io ()
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
... Handle -> Bool -> IO ()
IO.hSetEcho
hGetEcho :: (MonadIO io) => Handle -> io Bool
hGetEcho :: Handle -> io Bool
hGetEcho = IO Bool -> io Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> io Bool) -> (Handle -> IO Bool) -> Handle -> io Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> IO Bool
IO.hGetEcho
echo :: (MonadIO io) => Field io Handle Bool
echo :: Field io Handle Bool
echo = Handle -> io Bool
forall (io :: * -> *). MonadIO io => Handle -> io Bool
hGetEcho (Handle -> io Bool)
-> (Handle -> Bool -> io ()) -> Field io Handle Bool
forall (m :: * -> *) record a.
Monad m =>
(record -> m a) -> (record -> a -> m ()) -> Field m record a
`sfield` Handle -> Bool -> io ()
forall (io :: * -> *). MonadIO io => Handle -> Bool -> io ()
hSetEcho
hWaitForInput :: (MonadIO io) => Handle -> Int -> io Bool
hWaitForInput :: Handle -> Int -> io Bool
hWaitForInput = IO Bool -> io Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> io Bool)
-> (Handle -> Int -> IO Bool) -> Handle -> Int -> io Bool
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
... Handle -> Int -> IO Bool
IO.hWaitForInput
hReady :: (MonadIO io) => Handle -> io Bool
hReady :: Handle -> io Bool
hReady = IO Bool -> io Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> io Bool) -> (Handle -> IO Bool) -> Handle -> io Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> IO Bool
IO.hReady
hLookAhead :: (MonadIO io) => Handle -> io Char
hLookAhead :: Handle -> io Char
hLookAhead = IO Char -> io Char
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Char -> io Char) -> (Handle -> IO Char) -> Handle -> io Char
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> IO Char
IO.hLookAhead
hGetChar :: (MonadIO io) => Handle -> io Char
hGetChar :: Handle -> io Char
hGetChar = IO Char -> io Char
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Char -> io Char) -> (Handle -> IO Char) -> Handle -> io Char
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> IO Char
IO.hGetChar
hPutChar :: (MonadIO io) => Handle -> Char -> io ()
hPutChar :: Handle -> Char -> io ()
hPutChar = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (Handle -> Char -> IO ()) -> Handle -> Char -> io ()
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
... Handle -> Char -> IO ()
IO.hPutChar
getChar :: (MonadIO io) => io Char
getChar :: io Char
getChar = IO Char -> io Char
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO IO Char
IO.getChar
putChar :: (MonadIO io) => Char -> io ()
putChar :: Char -> io ()
putChar = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ()) -> (Char -> IO ()) -> Char -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> IO ()
IO.putChar
hSetBinaryMode :: (MonadIO io) => Handle -> Bool -> io ()
hSetBinaryMode :: Handle -> Bool -> io ()
hSetBinaryMode = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (Handle -> Bool -> IO ()) -> Handle -> Bool -> io ()
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
... Handle -> Bool -> IO ()
IO.hSetBinaryMode
withBinaryFile :: (MonadIO io) => FilePath -> IOMode -> (Handle -> IO r) -> io r
withBinaryFile :: FilePath -> IOMode -> (Handle -> IO r) -> io r
withBinaryFile FilePath
path = IO r -> io r
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO r -> io r)
-> (IOMode -> (Handle -> IO r) -> IO r)
-> IOMode
-> (Handle -> IO r)
-> io r
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
... FilePath -> IOMode -> (Handle -> IO r) -> IO r
forall r. FilePath -> IOMode -> (Handle -> IO r) -> IO r
IO.withBinaryFile FilePath
path
openBinaryFile :: (MonadIO io) => FilePath -> IOMode -> io Handle
openBinaryFile :: FilePath -> IOMode -> io Handle
openBinaryFile = IO Handle -> io Handle
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Handle -> io Handle)
-> (FilePath -> IOMode -> IO Handle)
-> FilePath
-> IOMode
-> io Handle
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
... FilePath -> IOMode -> IO Handle
IO.openBinaryFile
hGetBuf :: (MonadIO io) => Handle -> Ptr a -> Int -> io Int
hGetBuf :: Handle -> Ptr a -> Int -> io Int
hGetBuf Handle
hdl = IO Int -> io Int
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int -> io Int)
-> (Ptr a -> Int -> IO Int) -> Ptr a -> Int -> io Int
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
... Handle -> Ptr a -> Int -> IO Int
forall a. Handle -> Ptr a -> Int -> IO Int
IO.hGetBuf Handle
hdl
hGetBufSome :: (MonadIO io) => Handle -> Ptr a -> Int -> io Int
hGetBufSome :: Handle -> Ptr a -> Int -> io Int
hGetBufSome Handle
hdl = IO Int -> io Int
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int -> io Int)
-> (Ptr a -> Int -> IO Int) -> Ptr a -> Int -> io Int
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
... Handle -> Ptr a -> Int -> IO Int
forall a. Handle -> Ptr a -> Int -> IO Int
IO.hGetBufSome Handle
hdl
hPutBuf :: (MonadIO io) => Handle -> Ptr a -> Int -> io ()
hPutBuf :: Handle -> Ptr a -> Int -> io ()
hPutBuf Handle
hdl = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (Ptr a -> Int -> IO ()) -> Ptr a -> Int -> io ()
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
... Handle -> Ptr a -> Int -> IO ()
forall a. Handle -> Ptr a -> Int -> IO ()
IO.hPutBuf Handle
hdl
hPutBufNonBlocking :: (MonadIO io) => Handle -> Ptr a -> Int -> io Int
hPutBufNonBlocking :: Handle -> Ptr a -> Int -> io Int
hPutBufNonBlocking Handle
hdl = IO Int -> io Int
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int -> io Int)
-> (Ptr a -> Int -> IO Int) -> Ptr a -> Int -> io Int
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
... Handle -> Ptr a -> Int -> IO Int
forall a. Handle -> Ptr a -> Int -> IO Int
IO.hPutBufNonBlocking Handle
hdl
hGetBufNonBlocking :: (MonadIO io) => Handle -> Ptr a -> Int -> io Int
hGetBufNonBlocking :: Handle -> Ptr a -> Int -> io Int
hGetBufNonBlocking Handle
hdl = IO Int -> io Int
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int -> io Int)
-> (Ptr a -> Int -> IO Int) -> Ptr a -> Int -> io Int
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
... Handle -> Ptr a -> Int -> IO Int
forall a. Handle -> Ptr a -> Int -> IO Int
IO.hGetBufNonBlocking Handle
hdl
hSetNewlineMode :: (MonadIO io) => Handle -> NewlineMode -> io ()
hSetNewlineMode :: Handle -> NewlineMode -> io ()
hSetNewlineMode = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (Handle -> NewlineMode -> IO ())
-> Handle
-> NewlineMode
-> io ()
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
... Handle -> NewlineMode -> IO ()
IO.hSetNewlineMode
mkTextEncoding :: (MonadIO io) => String -> io TextEncoding
mkTextEncoding :: FilePath -> io TextEncoding
mkTextEncoding = IO TextEncoding -> io TextEncoding
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TextEncoding -> io TextEncoding)
-> (FilePath -> IO TextEncoding) -> FilePath -> io TextEncoding
forall b c a. (b -> c) -> (a -> b) -> a -> c
. FilePath -> IO TextEncoding
IO.mkTextEncoding
hSetEncoding :: (MonadIO io) => Handle -> TextEncoding -> io ()
hSetEncoding :: Handle -> TextEncoding -> io ()
hSetEncoding = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (Handle -> TextEncoding -> IO ())
-> Handle
-> TextEncoding
-> io ()
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
... Handle -> TextEncoding -> IO ()
forall (io :: * -> *).
MonadIO io =>
Handle -> TextEncoding -> io ()
hSetEncoding
hGetEncoding :: (MonadIO io) => Handle -> io (Maybe TextEncoding)
hGetEncoding :: Handle -> io (Maybe TextEncoding)
hGetEncoding = IO (Maybe TextEncoding) -> io (Maybe TextEncoding)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe TextEncoding) -> io (Maybe TextEncoding))
-> (Handle -> IO (Maybe TextEncoding))
-> Handle
-> io (Maybe TextEncoding)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> IO (Maybe TextEncoding)
IO.hGetEncoding
encoding :: (MonadIO io) => Field io Handle (Maybe TextEncoding)
encoding :: Field io Handle (Maybe TextEncoding)
encoding =
let setter :: Handle -> Maybe TextEncoding -> io ()
setter Handle
hdl = Handle -> Bool -> io ()
forall (io :: * -> *). MonadIO io => Handle -> Bool -> io ()
hSetBinaryMode Handle
hdl Bool
True io () -> (TextEncoding -> io ()) -> Maybe TextEncoding -> io ()
forall b a. b -> (a -> b) -> Maybe a -> b
`maybe` Handle -> TextEncoding -> io ()
forall (io :: * -> *).
MonadIO io =>
Handle -> TextEncoding -> io ()
hSetEncoding Handle
hdl
in Handle -> io (Maybe TextEncoding)
forall (io :: * -> *).
MonadIO io =>
Handle -> io (Maybe TextEncoding)
hGetEncoding (Handle -> io (Maybe TextEncoding))
-> (Handle -> Maybe TextEncoding -> io ())
-> Field io Handle (Maybe TextEncoding)
forall (m :: * -> *) record a.
Monad m =>
(record -> m a) -> (record -> a -> m ()) -> Field m record a
`sfield` Handle -> Maybe TextEncoding -> io ()
forall (io :: * -> *).
MonadIO io =>
Handle -> Maybe TextEncoding -> io ()
setter
openTempFile :: (MonadIO io) => FilePath -> String -> io (FilePath, Handle)
openTempFile :: FilePath -> FilePath -> io (FilePath, Handle)
openTempFile = IO (FilePath, Handle) -> io (FilePath, Handle)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (FilePath, Handle) -> io (FilePath, Handle))
-> (FilePath -> FilePath -> IO (FilePath, Handle))
-> FilePath
-> FilePath
-> io (FilePath, Handle)
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
... FilePath -> FilePath -> IO (FilePath, Handle)
IO.openTempFile
openBinaryTempFile :: (MonadIO io) => FilePath -> String -> io (FilePath, Handle)
openBinaryTempFile :: FilePath -> FilePath -> io (FilePath, Handle)
openBinaryTempFile = IO (FilePath, Handle) -> io (FilePath, Handle)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (FilePath, Handle) -> io (FilePath, Handle))
-> (FilePath -> FilePath -> IO (FilePath, Handle))
-> FilePath
-> FilePath
-> io (FilePath, Handle)
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
... FilePath -> FilePath -> IO (FilePath, Handle)
IO.openBinaryTempFile
openTempFileWith' :: (MonadIO io) => FilePath -> String -> io (FilePath, Handle)
openTempFileWith' :: FilePath -> FilePath -> io (FilePath, Handle)
openTempFileWith' = IO (FilePath, Handle) -> io (FilePath, Handle)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (FilePath, Handle) -> io (FilePath, Handle))
-> (FilePath -> FilePath -> IO (FilePath, Handle))
-> FilePath
-> FilePath
-> io (FilePath, Handle)
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
... FilePath -> FilePath -> IO (FilePath, Handle)
IO.openTempFileWithDefaultPermissions
openBinaryTempFile' :: (MonadIO io) => FilePath -> String -> io (FilePath, Handle)
openBinaryTempFile' :: FilePath -> FilePath -> io (FilePath, Handle)
openBinaryTempFile' = IO (FilePath, Handle) -> io (FilePath, Handle)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (FilePath, Handle) -> io (FilePath, Handle))
-> (FilePath -> FilePath -> IO (FilePath, Handle))
-> FilePath
-> FilePath
-> io (FilePath, Handle)
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
... FilePath -> FilePath -> IO (FilePath, Handle)
IO.openBinaryTempFileWithDefaultPermissions