h$      Nonet*(c) 2010-2012 Bas van Dijk & Roel van DijkBSD3 (see the file LICENSE)Bas van Dijk , Roel van Dijk  TrustworthythreadsA result of a thread is either some exception that was thrown in the thread and wasn't catched or the actual value that was returned by the thread.threadsLike Control.Concurrent. but returns a computation that when executed blocks until the thread terminates then returns the final value of the thread.threadsLike Control.Concurrent. but returns a computation that when executed blocks until the thread terminates then returns the final value of the thread.threadsLike Control.Concurrent. but returns a computation that when executed blocks until the thread terminates then returns the final value of the thread.threadsLike Control.Concurrent. but returns a computation that when executed blocks until the thread terminates then returns the final value of the thread.threadsLike Control.Concurrent. but returns a computation that when executed blocks until the thread terminates then returns the final value of the thread.threads*Retrieve the actual value from the result.When the result is  the exception is thrown.*(c) 2010-2012 Bas van Dijk & Roel van DijkBSD3 (see the file LICENSE)Bas van Dijk , Roel van Dijk  Trustworthy3 threadsA  ThreadGroup can be understood as a counter which counts the number of threads that were added to the group minus the ones that have terminated.More formally a  ThreadGroup has the following semantics: initializes the counter to 0.(Forking a thread increments the counter.When a forked thread terminates, whether normally or by raising an exception, the counter is decremented. / yields a transaction that returns the counter. 1 blocks as long as the counter is greater than 0.  blocks as long as the counter is greater or equal to the specified number.threads!Create an empty group of threads. threadsYield a transaction that returns the number of running threads in the group.)Note that because this function yields a  computation, the returned number is guaranteed to be consistent inside the transaction. threads5Block until all threads in the group have terminated. Note that: wait =   1. threads!Block until there are fewer than N running threads in the group. threadsSame as Control.Concurrent.Thread./ but additionaly adds the thread to the group. threadsSame as Control.Concurrent.Thread./ but additionaly adds the thread to the group.threadsSame as Control.Concurrent.Thread./ but additionaly adds the thread to the group.threadsSame as Control.Concurrent.Thread./ but additionaly adds the thread to the group.threadsLike Control.Concurrent.Thread./ but additionaly adds the thread to the group.             &threads-0.5.1.7-C1qlIqAXwpJCpbbtlZVxeFControl.Concurrent.ThreadControl.Concurrent.Thread.GroupControl.Concurrent.RawControl.ConcurrentforkIOforkOnResultforkOSforkIOWithUnmaskforkOnWithUnmaskresult ThreadGroupnew nrOfRunningwaitwaitN$fEqThreadGroup rawForkIO rawForkOnbase GHC.Conc.SyncGHC.Exception.Type SomeExceptionSTM