úÎ.Û*uS      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR(c) Nicolas Pouillard 2009BSD3/Nicolas Pouillard <nicolas.pouillard@gmail.com> provisionalNoneI ( allows to return to the wider world of Ss.A stricter version of T, that works for every monad.Wraps a strict IO computation without arguments. Wraps a lazy IO7 computation without arguments and forces its contents.Wraps a strict IO$ computation with a single argument.  Wraps a lazy IO< computation with a single argument and forces its contents. Wraps a strict IO computation with two arguments. Wraps a strict IO8 computation with two arguments and forces its contents. Wraps a strict IO computation with two arguments. Wraps a strict IO8 computation with two arguments and forces its contents.     (c) Nicolas Pouillard 2009BSD3/Nicolas Pouillard <nicolas.pouillard@gmail.com> provisionalNone Note that % is stricter than its counterpart in  System.IO. Note that % is stricter than its counterpart in  System.IO. Note that % is stricter than its counterpart in  System.IO. Note that % is stricter than its counterpart in  System.IO. Note that % is stricter than its counterpart in  System.IO. Note that % is stricter than its counterpart in  System.IO. Note that % is stricter than its counterpart in  System.IO. Note that % is stricter than its counterpart in  System.IO.; !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL> !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL> !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL; !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL(c) Nicolas Pouillard 2009-2017BSD3/Nicolas Pouillard <nicolas.pouillard@gmail.com> provisionalNoneM Build a new /, but deeply force the value before storing it.NRead the value of an O*Deeply force a value and write it into an PMutate the contents of an Q'Atomically modifies the contents of an ."This function is useful for using A in a safe way in a multithreaded program. If you only have one  , then using Q7 to access and modify it will prevent race conditions.$Extending the atomicity to multiple ds is problematic, so it is recommended that if you need to do anything more complicated then using Control.Concurrent.MVar.MVar instead is a good idea."Internally this function is using Data.IORef.atomicModifyIORef'.RMake a U pointer to an MNOPQRMNOPQRMNOPQRMNOPQRV      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_&strict-io-0.2.2-7IKJ82WMu8tHrhuWX1DD6wData.IORef.StrictSystem.IO.Strict.InternalsSystem.IO.Strictbase GHC.IORefIORefSIOrawRunrunreturn'wrap0wrap0'wrap1wrap1'wrap2wrap2'wrap3wrap3' $fFunctorSIO$fApplicativeSIO $fMonadSIO $fMonadFixSIO getContents hGetContentswithBinaryFilewithFilefixreadFilereadreadLngetChar appendFilegetLinehPrint hPutStrLnhReadyinteractopenBinaryTempFile openTempFileprintputCharputStrputStrLn writeFilehClose hFileSizehFlushhGetBufhGetBufNonBlocking hGetBufferinghGetCharhGetEchohGetLinehGetPosn hIsClosedhIsEOFhIsOpen hIsReadable hIsSeekablehIsTerminalDevice hIsWritable hLookAheadhPutBufhPutBufNonBlockinghPutCharhPutStrhSeekhSetBinaryMode hSetBufferinghSetEcho hSetFileSizehSetPosnhShowhTell hWaitForInputisEOFopenBinaryFileopenFilestderrstdinstdoutnewIORef readIORef writeIORef modifyIORefatomicModifyIORef mkWeakIORefghc-prim GHC.TypesIOGHC.BasereturnGHC.WeakWeak