úÎ þ+=Spark 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. 7  !"#$%&'()*+,-./01234567      !"#$#%#&#'#(#)#*#+#,-.-/-0-1-234567898:8;8<8=8>8?8@8ABforkable-monad-0.1Control.Concurrent.Forkable ForkableMonadforkIObaseGHC.ConcThreadIdControl.ConcurrentthreadWaitWritethreadWaitReadrunInUnboundThreadrunInBoundThreadisCurrentThreadBoundforkOSnmergeIOmergeIOrtsSupportsBoundThreadsControl.Concurrent.SampleVarisEmptySampleVarwriteSampleVar readSampleVaremptySampleVar newSampleVarnewEmptySampleVar SampleVarControl.Concurrent.QSemN signalQSemN waitQSemNnewQSemNQSemNControl.Concurrent.QSem signalQSemwaitQSemnewQSemQSemControl.Concurrent.ChanwriteList2ChangetChanContents isEmptyChan unGetChandupChanreadChan writeChannewChanChanControl.Concurrent.MVar modifyMVar modifyMVar_withMVarswapMVarreadMVar threadDelayyield myThreadIdthrowTo killThreadGHC.MVaraddMVarFinalizer isEmptyMVar tryPutMVar tryTakeMVarputMVartakeMVarnewMVar newEmptyMVarMVar