forkIO package:forkable-monad

Spark off a new thread to run the monadic computation passed as the first argument, and return the ThreadId 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.