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.