úÎ ÖÐSafe`dSpark off a new thread to run the monadic computation passed as the first argument, and return the  of the newly created thread.]The new thread will run the computation using the same monadic context as the parent thread.’As a convenience, this forkIO accepts a computation returning any value, not just unit. This value is discarded when the computation terminates.>  !"#$%&'()*+,-./0123456789:;<=>?@Safe©ABCDEFGHI              !"!#!$!%&'&(&)&*+,-.-/-0-1-2-3-4-5-6 7 8 9 : ; < = > ? @ ABCBDBEBFBGBHBIBJBKBLMNOPQRSTU-forkable-monad-0.2.0.2-KQsKTDlDYt63KDuTCBv3u4Control.Concurrent.ForkablePaths_forkable_monad ForkableMonadforkIO$fForkableMonadStateT$fForkableMonadReaderT$fForkableMonadIObase GHC.Conc.SyncThreadIdControl.ConcurrentthreadWaitWriteSTMthreadWaitReadSTMthreadWaitWritethreadWaitReadrunInUnboundThreadrunInBoundThreadisCurrentThreadBoundforkOSWithUnmaskforkOS forkFinallyrtsSupportsBoundThreadsControl.Concurrent.ChanwriteList2ChangetChanContents isEmptyChan unGetChandupChanreadChan writeChannewChanChanControl.Concurrent.QSem signalQSemwaitQSemnewQSemQSemControl.Concurrent.QSemN signalQSemN waitQSemNnewQSemNQSemN GHC.Conc.IO threadDelayControl.Concurrent.MVar mkWeakMVaraddMVarFinalizermodifyMVarMaskedmodifyMVarMasked_ modifyMVar modifyMVar_withMVarMaskedwithMVarswapMVarmkWeakThreadIdthreadCapabilityyield myThreadIdthrowTo killThreadsetNumCapabilitiesgetNumCapabilitiesforkOnWithUnmaskforkOnforkIOWithUnmaskGHC.MVar isEmptyMVar tryReadMVar tryPutMVar tryTakeMVarputMVarreadMVartakeMVarnewMVar newEmptyMVarMVarversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName