úÎÚ&N      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMGLike N, but for jailed computations. The jailed IO monad. OPQRSKRun a jailed IO computation. The IO computation will be able to access all Nfiles that are within the specified jail directory. All file accesses outside Mthe jail directory will be refused. Only file handles opened from within the Mjailed computation and the handles from the white list will be accessible to Lthe operations requiring a file handle. No smuggling in of foreign handles, Aborder patrol is very strict. When the jail path is specified as T no Nfile access will be possible at all, this means the computation can only rely on the white listed handles. The jail directory or T for not allowing file access. 4A white list of handles that are always accessible. "The jailed IO computation to run. 9Run the computation from within the insecure real world. UVWXYZ[ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN  !"#$%& '()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM; !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM\      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[[\]^_`abcdef jail-0.0.1System.IO.JailbaseGHC.IO.Handle.TypesHandleGHC.IO.Handle.FDstderrstdin GHC.IO.Handle HandlePosnstdout NoBuffering LineBufferingBlockBuffering BufferMode GHC.IO.Device AbsoluteSeek RelativeSeek SeekFromEndSeekMode GHC.IO.IOModeReadMode WriteMode AppendMode ReadWriteModeIOModeGHC.IOFilePathJailIOjailIOIOrunwithFileopenFilehClosereadFile writeFile appendFile hFileSize hSetFileSizehIsEOFisEOF hSetBuffering hGetBufferinghFlushhGetPosnhSetPosnhSeekhTellhIsOpen hIsClosed hIsReadable hIsWritable hIsSeekablehIsTerminalDevicehSetEchohGetEchohShow hWaitForInputhReadyhGetCharhGetLine hLookAhead hGetContentshPutCharhPutStr hPutStrLnhPrintinteractputCharputStrputStrLnprintgetChargetLine getContentsreadIOreadLnwithBinaryFileopenBinaryFilehSetBinaryModehPutBufhGetBufhPutBufNonBlockinghGetBufNonBlocking openTempFileopenBinaryTempFiletransformers-0.1.4.0Control.Monad.TransMonadIOunJailHandleSmkHWrap Data.MaybeNothingrunRaw isSubPathOfioallow embedPath embedHandles embedHandle