hat-2.7.0.0: Hat/IO.hs
module Hat.IO
(Handle(),HandlePosn(),IOMode(ReadMode,WriteMode,AppendMode,ReadWriteMode)
,aReadMode,aWriteMode,aAppendMode,aReadWriteMode,BufferMode(NoBuffering
,LineBuffering,BlockBuffering),aNoBuffering,aLineBuffering,aBlockBuffering
,SeekMode(AbsoluteSeek,RelativeSeek,SeekFromEnd),aAbsoluteSeek,aRelativeSeek
,aSeekFromEnd,gstdin,gstdout,gstderr,gopenFile,aopenFile,hopenFile,ghClose
,ahClose,hhClose,ghFileSize,ahFileSize,hhFileSize,ghIsEOF,ahIsEOF,hhIsEOF
,gisEOF,ghSetBuffering,ahSetBuffering,hhSetBuffering,ghGetBuffering
,ahGetBuffering,hhGetBuffering,ghFlush,ahFlush,hhFlush,ghGetPosn,ahGetPosn
,hhGetPosn,ghSetPosn,ahSetPosn,hhSetPosn,ghSeek,ahSeek,hhSeek,ghWaitForInput
,ahWaitForInput,hhWaitForInput,ghReady,ahReady,hhReady,ghGetChar,ahGetChar
,hhGetChar,ghGetLine,ahGetLine,hhGetLine,ghLookAhead,ahLookAhead,hhLookAhead
,ghGetContents,ahGetContents,hhGetContents,ghPutChar,ahPutChar,hhPutChar
,ghPutStr,ahPutStr,hhPutStr,ghPutStrLn,ahPutStrLn,hhPutStrLn,ghPrint,ahPrint
,hhPrint,ghIsOpen,ahIsOpen,hhIsOpen,ghIsClosed,ahIsClosed,hhIsClosed
,ghIsReadable,ahIsReadable,hhIsReadable,ghIsWritable,ahIsWritable
,hhIsWritable,ghIsSeekable,ahIsSeekable,hhIsSeekable,gisAlreadyExistsError
,aisAlreadyExistsError,hisAlreadyExistsError,gisDoesNotExistError
,aisDoesNotExistError,hisDoesNotExistError,gisAlreadyInUseError
,aisAlreadyInUseError,hisAlreadyInUseError,gisFullError,aisFullError
,hisFullError,gisEOFError,aisEOFError,hisEOFError,gisIllegalOperation
,aisIllegalOperation,hisIllegalOperation,gisPermissionError
,aisPermissionError,hisPermissionError,gisUserError,aisUserError
,hisUserError,gioeGetErrorString,aioeGetErrorString,hioeGetErrorString
,gioeGetHandle,aioeGetHandle,hioeGetHandle,gioeGetFileName,aioeGetFileName
,hioeGetFileName,gtry,atry,htry,gbracket,abracket,hbracket,gbracket_
,abracket_,hbracket_,IO(),FilePath(),IOError(),gioError,aioError,hioError
,guserError,auserError,huserError,gcatch,acatch,hcatch,ginteract,ainteract
,hinteract,gputChar,aputChar,hputChar,gputStr,aputStr,hputStr,gputStrLn
,aputStrLn,hputStrLn,gprint,aprint,hprint,ggetChar,ggetLine,ggetContents
,greadFile,areadFile,hreadFile,gwriteFile,awriteFile,hwriteFile,gappendFile
,aappendFile,happendFile,greadIO,areadIO,hreadIO,greadLn) where
import qualified Hat.PreludeBasic
import qualified Prelude
import Hat.Hack
import qualified Hat.Hat as T
import Hat.Hat (WrapVal(wrapVal))
import Hat.Prelude
import Hat.Ix (Ix(grange,gindex,ginRange,srange,sindex,sinRange))
import Hat.PreludeBuiltinTypes
import System.IO (Handle(),HandlePosn())
import qualified System.IO as IO
import qualified System.IO.Error as Error
import Hat.IOBuiltinTypes
import Hat.IOBuiltin
gprimHandleEq ::
T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (T.Fun Handle Bool))
gprimHandleEq pprimHandleEq p =
T.ufun2 aprimHandleEq pprimHandleEq p hprimHandleEq
hprimHandleEq z1primHandleEq z2primHandleEq kprimHandleEq =
fromBool kprimHandleEq
((toHandle kprimHandleEq z1primHandleEq)
Prelude.==
(toHandle kprimHandleEq z2primHandleEq))
gprimHandleShowsPrec ::
T.RefSrcPos ->
T.RefExp -> T.R (T.Fun Int (T.Fun Handle (T.Fun String String)))
gprimHandleShowsPrec pprimHandleShowsPrec p =
T.ufun3 aprimHandleShowsPrec pprimHandleShowsPrec p hprimHandleShowsPrec
hprimHandleShowsPrec z1primHandleShowsPrec z2primHandleShowsPrec
z3primHandleShowsPrec kprimHandleShowsPrec =
fromString kprimHandleShowsPrec
(Prelude.showsPrec (T.toInt kprimHandleShowsPrec z1primHandleShowsPrec)
(toHandle kprimHandleShowsPrec z2primHandleShowsPrec)
(toString kprimHandleShowsPrec z3primHandleShowsPrec))
instance Eq (Handle)
where
(!==) (%==) p = T.uconstUse (%==) p (|==)
(|==) =
T.uconstDef T.mkRoot (+&%=&=&%=$#==) (\ p -> gprimHandleEq T.mkNoSrcPos p)
instance Show (Handle)
where
gshowsPrec pshowsPrec p = T.uconstUse pshowsPrec p sshowsPrec
sshowsPrec =
T.uconstDef T.mkRoot a46v3v46v33showsPrec
(\ p -> gprimHandleShowsPrec T.mkNoSrcPos p)
gprimHandlePosnEq ::
T.RefSrcPos -> T.RefExp -> T.R (T.Fun HandlePosn (T.Fun HandlePosn Bool))
gprimHandlePosnEq pprimHandlePosnEq p =
T.ufun2 aprimHandlePosnEq pprimHandlePosnEq p hprimHandlePosnEq
hprimHandlePosnEq z1primHandlePosnEq z2primHandlePosnEq kprimHandlePosnEq =
fromBool kprimHandlePosnEq
((toHandlePosn kprimHandlePosnEq z1primHandlePosnEq)
Prelude.==
(toHandlePosn kprimHandlePosnEq z2primHandlePosnEq))
instance Eq (HandlePosn)
where
(!==) (%==) p = T.uconstUse (%==) p (|==)
(|==) =
T.uconstDef T.mkRoot (+*&=&=*&=$*==)
(\ p -> gprimHandlePosnEq T.mkNoSrcPos p)
gstdin :: T.RefSrcPos -> T.RefExp -> T.R Handle
gstdin pstdin p = T.uconstUse pstdin p sstdin
sstdin = T.uconstDef T.mkRoot astdin (\ p -> fromHandle p IO.stdin)
gstdout :: T.RefSrcPos -> T.RefExp -> T.R Handle
gstdout pstdout p = T.uconstUse pstdout p sstdout
sstdout = T.uconstDef T.mkRoot astdout (\ p -> fromHandle p IO.stdout)
gstderr :: T.RefSrcPos -> T.RefExp -> T.R Handle
gstderr pstderr p = T.uconstUse pstderr p sstderr
sstderr = T.uconstDef T.mkRoot astderr (\ p -> fromHandle p IO.stderr)
gopenFile ::
T.RefSrcPos -> T.RefExp -> T.R (T.Fun String (T.Fun IOMode (IO Handle)))
gopenFile popenFile p = T.ufun2 aopenFile popenFile p hopenFile
hopenFile z1openFile z2openFile kopenFile =
(T.fromIO fromHandle) kopenFile
(IO.openFile (toString kopenFile z1openFile)
(toIOMode kopenFile z2openFile))
ghClose :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (IO T.Tuple0))
ghClose phClose p = T.ufun1 ahClose phClose p hhClose
hhClose z1hClose khClose =
(T.fromIO T.fromTuple0) khClose (IO.hClose (toHandle khClose z1hClose))
ghFileSize :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (IO Integer))
ghFileSize phFileSize p = T.ufun1 ahFileSize phFileSize p hhFileSize
hhFileSize z1hFileSize khFileSize =
(T.fromIO T.fromInteger) khFileSize
(IO.hFileSize (toHandle khFileSize z1hFileSize))
ghIsEOF :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (IO Bool))
ghIsEOF phIsEOF p = T.ufun1 ahIsEOF phIsEOF p hhIsEOF
hhIsEOF z1hIsEOF khIsEOF =
(T.fromIO fromBool) khIsEOF (IO.hIsEOF (toHandle khIsEOF z1hIsEOF))
gisEOF :: T.RefSrcPos -> T.RefExp -> T.R (IO Bool)
sisEOF :: T.R (IO Bool)
gisEOF pisEOF p = T.uconstUse pisEOF p sisEOF
sisEOF =
T.uconstDef T.mkRoot aisEOF
(\ p -> T.uwrapForward p (hhIsEOF (gstdin T.mkNoSrcPos p) p))
ghSetBuffering ::
T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (T.Fun BufferMode (IO T.Tuple0)))
ghSetBuffering phSetBuffering p =
T.ufun2 ahSetBuffering phSetBuffering p hhSetBuffering
hhSetBuffering z1hSetBuffering z2hSetBuffering khSetBuffering =
(T.fromIO T.fromTuple0) khSetBuffering
(IO.hSetBuffering (toHandle khSetBuffering z1hSetBuffering)
(toBufferMode khSetBuffering z2hSetBuffering))
ghGetBuffering :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (IO BufferMode))
ghGetBuffering phGetBuffering p =
T.ufun1 ahGetBuffering phGetBuffering p hhGetBuffering
hhGetBuffering z1hGetBuffering khGetBuffering =
(T.fromIO fromBufferMode) khGetBuffering
(IO.hGetBuffering (toHandle khGetBuffering z1hGetBuffering))
ghFlush :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (IO T.Tuple0))
ghFlush phFlush p = T.ufun1 ahFlush phFlush p hhFlush
hhFlush z1hFlush khFlush =
(T.fromIO T.fromTuple0) khFlush (IO.hFlush (toHandle khFlush z1hFlush))
ghGetPosn :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (IO HandlePosn))
ghGetPosn phGetPosn p = T.ufun1 ahGetPosn phGetPosn p hhGetPosn
hhGetPosn z1hGetPosn khGetPosn =
(T.fromIO fromHandlePosn) khGetPosn
(IO.hGetPosn (toHandle khGetPosn z1hGetPosn))
ghSetPosn :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun HandlePosn (IO T.Tuple0))
ghSetPosn phSetPosn p = T.ufun1 ahSetPosn phSetPosn p hhSetPosn
hhSetPosn z1hSetPosn khSetPosn =
(T.fromIO T.fromTuple0) khSetPosn
(IO.hSetPosn (toHandlePosn khSetPosn z1hSetPosn))
ghSeek ::
T.RefSrcPos ->
T.RefExp ->
T.R (T.Fun Handle (T.Fun SeekMode (T.Fun Integer (IO T.Tuple0))))
ghSeek phSeek p = T.ufun3 ahSeek phSeek p hhSeek
hhSeek z1hSeek z2hSeek z3hSeek khSeek =
(T.fromIO T.fromTuple0) khSeek
(IO.hSeek (toHandle khSeek z1hSeek) (toSeekMode khSeek z2hSeek)
(T.toInteger khSeek z3hSeek))
ghWaitForInput ::
T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (T.Fun Int (IO Bool)))
ghWaitForInput phWaitForInput p =
T.ufun2 ahWaitForInput phWaitForInput p hhWaitForInput
hhWaitForInput z1hWaitForInput z2hWaitForInput khWaitForInput =
(T.fromIO fromBool) khWaitForInput
(IO.hWaitForInput (toHandle khWaitForInput z1hWaitForInput)
(T.toInt khWaitForInput z2hWaitForInput))
ghReady :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (IO Bool))
hhReady :: (T.R Handle) -> T.RefExp -> T.R (IO Bool)
ghReady phReady p = T.ufun1 ahReady phReady p hhReady
hhReady fh p =
T.uwrapForward p
(hhWaitForInput fh
(T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
(T.conInteger T.mkNoSrcPos p 0)) p)
ghGetChar :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (IO Char))
ghGetChar phGetChar p = T.ufun1 ahGetChar phGetChar p hhGetChar
hhGetChar z1hGetChar khGetChar =
(T.fromIO T.fromChar) khGetChar (IO.hGetChar (toHandle khGetChar z1hGetChar))
ghGetLine :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (IO String))
ghGetLine phGetLine p = T.ufun1 ahGetLine phGetLine p hhGetLine
hhGetLine z1hGetLine khGetLine =
(T.fromIO fromString) khGetLine (IO.hGetLine (toHandle khGetLine z1hGetLine))
ghLookAhead :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (IO Char))
ghLookAhead phLookAhead p = T.ufun1 ahLookAhead phLookAhead p hhLookAhead
hhLookAhead z1hLookAhead khLookAhead =
(T.fromIO T.fromChar) khLookAhead
(IO.hLookAhead (toHandle khLookAhead z1hLookAhead))
ghGetContents :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (IO String))
ghGetContents phGetContents p =
T.ufun1 ahGetContents phGetContents p hhGetContents
hhGetContents z1hGetContents khGetContents =
(T.fromIO fromString) khGetContents
(IO.hGetContents (toHandle khGetContents z1hGetContents))
ghPutChar ::
T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (T.Fun Char (IO T.Tuple0)))
ghPutChar phPutChar p = T.ufun2 ahPutChar phPutChar p hhPutChar
hhPutChar z1hPutChar z2hPutChar khPutChar =
(T.fromIO T.fromTuple0) khPutChar
((\_ h c -> T.outputTrace khPutChar [c] Prelude.>> IO.hPutChar h c) Prelude.True
(toHandle khPutChar z1hPutChar) (T.toChar khPutChar z2hPutChar))
ghPutStr ::
T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (T.Fun String (IO T.Tuple0)))
ghPutStr phPutStr p = T.ufun2 ahPutStr phPutStr p hhPutStr
hhPutStr z1hPutStr z2hPutStr khPutStr =
(T.fromIO T.fromTuple0) khPutStr
((\_ h s -> T.outputTrace khPutStr s Prelude.>> IO.hPutStr h s) Prelude.True
(toHandle khPutStr z1hPutStr) (toString khPutStr z2hPutStr))
ghPutStrLn ::
T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (T.Fun String (IO T.Tuple0)))
hhPutStrLn :: (T.R Handle) -> (T.R String) -> T.RefExp -> T.R (IO T.Tuple0)
ghPutStrLn phPutStrLn p = T.ufun2 ahPutStrLn phPutStrLn p hhPutStrLn
hhPutStrLn fh fs p =
T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!>> p)
(T.uwrapForward p (hhPutStr fh fs p))
(T.uwrapForward p (hhPutStr fh (T.fromLitString T.mkNoSrcPos p "\n") p))
ghPrint ::
Show a =>
T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (T.Fun a (IO T.Tuple0)))
hhPrint :: Show a => (T.R Handle) -> (T.R a) -> T.RefExp -> T.R (IO T.Tuple0)
ghPrint phPrint p = T.ufun2 ahPrint phPrint p hhPrint
hhPrint fh fx p =
T.uwrapForward p
(hhPutStrLn fh (T.uap1 T.mkNoSrcPos p (gshow T.mkNoSrcPos p) fx) p)
ghIsOpen :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (IO Bool))
ghIsOpen phIsOpen p = T.ufun1 ahIsOpen phIsOpen p hhIsOpen
hhIsOpen z1hIsOpen khIsOpen =
(T.fromIO fromBool) khIsOpen (IO.hIsOpen (toHandle khIsOpen z1hIsOpen))
ghIsClosed :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (IO Bool))
ghIsClosed phIsClosed p = T.ufun1 ahIsClosed phIsClosed p hhIsClosed
hhIsClosed z1hIsClosed khIsClosed =
(T.fromIO fromBool) khIsClosed
(IO.hIsClosed (toHandle khIsClosed z1hIsClosed))
ghIsReadable :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (IO Bool))
ghIsReadable phIsReadable p = T.ufun1 ahIsReadable phIsReadable p hhIsReadable
hhIsReadable z1hIsReadable khIsReadable =
(T.fromIO fromBool) khIsReadable
(IO.hIsReadable (toHandle khIsReadable z1hIsReadable))
ghIsWritable :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (IO Bool))
ghIsWritable phIsWritable p = T.ufun1 ahIsWritable phIsWritable p hhIsWritable
hhIsWritable z1hIsWritable khIsWritable =
(T.fromIO fromBool) khIsWritable
(IO.hIsWritable (toHandle khIsWritable z1hIsWritable))
ghIsSeekable :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Handle (IO Bool))
ghIsSeekable phIsSeekable p = T.ufun1 ahIsSeekable phIsSeekable p hhIsSeekable
hhIsSeekable z1hIsSeekable khIsSeekable =
(T.fromIO fromBool) khIsSeekable
(IO.hIsSeekable (toHandle khIsSeekable z1hIsSeekable))
gisAlreadyExistsError :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun IOError Bool)
gisAlreadyExistsError pisAlreadyExistsError p =
T.ufun1 aisAlreadyExistsError pisAlreadyExistsError p hisAlreadyExistsError
hisAlreadyExistsError z1isAlreadyExistsError kisAlreadyExistsError =
fromBool kisAlreadyExistsError
(Error.isAlreadyExistsError
(toIOError kisAlreadyExistsError z1isAlreadyExistsError))
gisDoesNotExistError :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun IOError Bool)
gisDoesNotExistError pisDoesNotExistError p =
T.ufun1 aisDoesNotExistError pisDoesNotExistError p hisDoesNotExistError
hisDoesNotExistError z1isDoesNotExistError kisDoesNotExistError =
fromBool kisDoesNotExistError
(Error.isDoesNotExistError
(toIOError kisDoesNotExistError z1isDoesNotExistError))
gisAlreadyInUseError :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun IOError Bool)
gisAlreadyInUseError pisAlreadyInUseError p =
T.ufun1 aisAlreadyInUseError pisAlreadyInUseError p hisAlreadyInUseError
hisAlreadyInUseError z1isAlreadyInUseError kisAlreadyInUseError =
fromBool kisAlreadyInUseError
(Error.isAlreadyInUseError
(toIOError kisAlreadyInUseError z1isAlreadyInUseError))
gisFullError :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun IOError Bool)
gisFullError pisFullError p = T.ufun1 aisFullError pisFullError p hisFullError
hisFullError z1isFullError kisFullError =
fromBool kisFullError
(Error.isFullError (toIOError kisFullError z1isFullError))
gisEOFError :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun IOError Bool)
gisEOFError pisEOFError p = T.ufun1 aisEOFError pisEOFError p hisEOFError
hisEOFError z1isEOFError kisEOFError =
fromBool kisEOFError (Error.isEOFError (toIOError kisEOFError z1isEOFError))
gisIllegalOperation :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun IOError Bool)
gisIllegalOperation pisIllegalOperation p =
T.ufun1 aisIllegalOperation pisIllegalOperation p hisIllegalOperation
hisIllegalOperation z1isIllegalOperation kisIllegalOperation =
fromBool kisIllegalOperation
(Error.isIllegalOperation
(toIOError kisIllegalOperation z1isIllegalOperation))
gisPermissionError :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun IOError Bool)
gisPermissionError pisPermissionError p =
T.ufun1 aisPermissionError pisPermissionError p hisPermissionError
hisPermissionError z1isPermissionError kisPermissionError =
fromBool kisPermissionError
(Error.isPermissionError (toIOError kisPermissionError z1isPermissionError))
gisUserError :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun IOError Bool)
gisUserError pisUserError p = T.ufun1 aisUserError pisUserError p hisUserError
hisUserError z1isUserError kisUserError =
fromBool kisUserError
(Error.isUserError (toIOError kisUserError z1isUserError))
gioeGetErrorString :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun IOError String)
gioeGetErrorString pioeGetErrorString p =
T.ufun1 aioeGetErrorString pioeGetErrorString p hioeGetErrorString
hioeGetErrorString z1ioeGetErrorString kioeGetErrorString =
fromString kioeGetErrorString
(Error.ioeGetErrorString (toIOError kioeGetErrorString z1ioeGetErrorString))
gioeGetHandle :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun IOError (Maybe Handle))
gioeGetHandle pioeGetHandle p =
T.ufun1 aioeGetHandle pioeGetHandle p hioeGetHandle
hioeGetHandle z1ioeGetHandle kioeGetHandle =
(fromMaybe fromHandle) kioeGetHandle
(Error.ioeGetHandle (toIOError kioeGetHandle z1ioeGetHandle))
gioeGetFileName :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun IOError (Maybe String))
gioeGetFileName pioeGetFileName p =
T.ufun1 aioeGetFileName pioeGetFileName p hioeGetFileName
hioeGetFileName z1ioeGetFileName kioeGetFileName =
(fromMaybe fromString) kioeGetFileName
(Error.ioeGetFileName (toIOError kioeGetFileName z1ioeGetFileName))
gtry :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun (IO a) (IO (Either IOError a)))
htry :: (T.R (IO a)) -> T.RefExp -> T.R (IO (Either IOError a))
gtry ptry p = T.ufun1 atry ptry p htry
htry ff p =
T.uwrapForward p
(hcatch
(T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!>>= p) ff
(T.ufun1 T.mkDoLambda T.mkNoSrcPos p
(\ fr p ->
T.uap1 T.mkNoSrcPos p (greturn T.mkNoSrcPos p)
(T.con1 T.mkNoSrcPos p Right aRight fr))))
(T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p) (greturn T.mkNoSrcPos p)
(T.pa0 Left T.cn1 T.mkNoSrcPos p aLeft)) p)
gbracket ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun (IO a) (T.Fun (T.Fun a (IO b)) (T.Fun (T.Fun a (IO c)) (IO c))))
hbracket ::
(T.R (IO a)) ->
(T.R (T.Fun a (IO b))) -> (T.R (T.Fun a (IO c))) -> T.RefExp -> T.R (IO c)
gbracket pbracket p = T.ufun3 abracket pbracket p hbracket
hbracket fbefore fafter fm p =
T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!>>= p) fbefore
(T.ufun1 T.mkDoLambda T.mkNoSrcPos p
(\ fx p ->
T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!>>= p)
(T.uwrapForward p (htry (T.uap1 T.mkNoSrcPos p fm fx) p))
(T.ufun1 T.mkDoLambda T.mkNoSrcPos p
(\ frs p ->
T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!>> p)
(T.uap1 T.mkNoSrcPos p fafter fx)
(T.uccase T.mkNoSrcPos p
(let
v173v9v175v31v1 (T.R (Right fr) _) p =
T.uap1 T.mkNoSrcPos p (greturn T.mkNoSrcPos p) fr
v173v9v175v31v1 (T.R (Left fe) _) p =
T.uwrapForward p (hioError fe p)
v173v9v175v31v1 _ p = T.fatal p in (v173v9v175v31v1))
frs)))))
gbracket_ ::
T.RefSrcPos ->
T.RefExp ->
T.R (T.Fun (IO a) (T.Fun (T.Fun a (IO b)) (T.Fun (IO c) (IO c))))
hbracket_ ::
(T.R (IO a)) ->
(T.R (T.Fun a (IO b))) -> (T.R (IO c)) -> T.RefExp -> T.R (IO c)
gbracket_ pbracket_ p = T.ufun3 abracket_ pbracket_ p hbracket_
hbracket_ fbefore fafter fm p =
T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!>>= p) fbefore
(T.ufun1 T.mkDoLambda T.mkNoSrcPos p
(\ fx p ->
T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!>>= p)
(T.uwrapForward p (htry fm p))
(T.ufun1 T.mkDoLambda T.mkNoSrcPos p
(\ frs p ->
T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!>> p)
(T.uap1 T.mkNoSrcPos p fafter fx)
(T.uccase T.mkNoSrcPos p
(let
v183v10v185v32v1 (T.R (Right fr) _) p =
T.uap1 T.mkNoSrcPos p (greturn T.mkNoSrcPos p) fr
v183v10v185v32v1 (T.R (Left fe) _) p =
T.uwrapForward p (hioError fe p)
v183v10v185v32v1 _ p = T.fatal p in (v183v10v185v32v1))
frs)))))
tIO = T.mkModule "IO" "IO.hs" Prelude.False
aprimHandleEq = T.mkVariable tIO 360001 370041 3 2 "primHandleEq" Prelude.False
aprimHandleShowsPrec =
T.mkVariable tIO 390001 400057 3 3 "primHandleShowsPrec" Prelude.False
aprimHandlePosnEq =
T.mkVariable tIO 500001 510053 3 2 "primHandlePosnEq" Prelude.False
astdin = T.mkVariable tIO 650001 660016 3 0 "stdin" Prelude.False
astdout = T.mkVariable tIO 670001 680017 3 0 "stdout" Prelude.False
astderr = T.mkVariable tIO 690001 700017 3 0 "stderr" Prelude.False
aopenFile = T.mkVariable tIO 720001 730048 3 2 "openFile" Prelude.False
ahClose = T.mkVariable tIO 740001 750038 3 1 "hClose" Prelude.False
ahFileSize = T.mkVariable tIO 770001 780038 3 1 "hFileSize" Prelude.False
ahIsEOF = T.mkVariable tIO 790001 800038 3 1 "hIsEOF" Prelude.False
aisEOF = T.mkVariable tIO 830001 830037 3 0 "isEOF" Prelude.False
ahSetBuffering =
T.mkVariable tIO 850001 860053 3 2 "hSetBuffering" Prelude.False
ahGetBuffering =
T.mkVariable tIO 870001 880039 3 1 "hGetBuffering" Prelude.False
ahFlush = T.mkVariable tIO 890001 900038 3 1 "hFlush" Prelude.False
ahGetPosn = T.mkVariable tIO 910001 920038 3 1 "hGetPosn" Prelude.False
ahSetPosn = T.mkVariable tIO 930001 940042 3 1 "hSetPosn" Prelude.False
ahSeek = T.mkVariable tIO 950001 960061 3 3 "hSeek" Prelude.False
ahWaitForInput =
T.mkVariable tIO 980001 990043 3 2 "hWaitForInput" Prelude.False
ahReady = T.mkVariable tIO 1020001 1020028 3 1 "hReady" Prelude.False
ahGetChar = T.mkVariable tIO 1040001 1050038 3 1 "hGetChar" Prelude.False
ahGetLine = T.mkVariable tIO 1060001 1070038 3 1 "hGetLine" Prelude.False
ahLookAhead = T.mkVariable tIO 1080001 1090038 3 1 "hLookAhead" Prelude.False
ahGetContents =
T.mkVariable tIO 1100001 1110038 3 1 "hGetContents" Prelude.False
ahPutChar = T.mkVariable tIO 1120001 1130046 3 2 "hPutChar" Prelude.False
ahPutStr = T.mkVariable tIO 1140001 1150048 3 2 "hPutStr" Prelude.False
ahPutStrLn = T.mkVariable tIO 1180001 1190038 3 2 "hPutStrLn" Prelude.False
ahPrint = T.mkVariable tIO 1220001 1220032 3 2 "hPrint" Prelude.False
ahIsOpen = T.mkVariable tIO 1240001 1250038 3 1 "hIsOpen" Prelude.False
ahIsClosed = T.mkVariable tIO 1260001 1270038 3 1 "hIsClosed" Prelude.False
ahIsReadable = T.mkVariable tIO 1280001 1290038 3 1 "hIsReadable" Prelude.False
ahIsWritable = T.mkVariable tIO 1300001 1310038 3 1 "hIsWritable" Prelude.False
ahIsSeekable = T.mkVariable tIO 1320001 1330038 3 1 "hIsSeekable" Prelude.False
aisAlreadyExistsError =
T.mkVariable tIO 1350001 1360041 3 1 "isAlreadyExistsError" Prelude.False
aisDoesNotExistError =
T.mkVariable tIO 1370001 1380041 3 1 "isDoesNotExistError" Prelude.False
aisAlreadyInUseError =
T.mkVariable tIO 1390001 1400041 3 1 "isAlreadyInUseError" Prelude.False
aisFullError = T.mkVariable tIO 1410001 1420041 3 1 "isFullError" Prelude.False
aisEOFError = T.mkVariable tIO 1430001 1440041 3 1 "isEOFError" Prelude.False
aisIllegalOperation =
T.mkVariable tIO 1450001 1460041 3 1 "isIllegalOperation" Prelude.False
aisPermissionError =
T.mkVariable tIO 1470001 1480041 3 1 "isPermissionError" Prelude.False
aisUserError = T.mkVariable tIO 1490001 1500041 3 1 "isUserError" Prelude.False
aioeGetErrorString =
T.mkVariable tIO 1520001 1530043 3 1 "ioeGetErrorString" Prelude.False
aioeGetHandle =
T.mkVariable tIO 1540001 1550042 3 1 "ioeGetHandle" Prelude.False
aioeGetFileName =
T.mkVariable tIO 1570001 1580042 3 1 "ioeGetFileName" Prelude.False
atry = T.mkVariable tIO 1640001 1660038 3 1 "try" Prelude.False
abracket = T.mkVariable tIO 1690001 1750031 3 3 "bracket" Prelude.False
abracket_ = T.mkVariable tIO 1790001 1850032 3 3 "bracket_" Prelude.False
(+&%=&=&%=$#==) = T.mkVariable tIO 430004 430021 16 0 "==" Prelude.False
a46v3v46v33showsPrec =
T.mkVariable tIO 460003 460033 3 0 "showsPrec" Prelude.False
(+*&=&=*&=$*==) = T.mkVariable tIO 540004 540025 16 0 "==" Prelude.False