Description
Starts Haskell threads and provides a way to wait for their results. This gives application code a clearer pattern for running work concurrently and collecting the outcome later.
It is useful for background tasks, parallel requests, worker-style code, tests, and tools that need controlled concurrency. Developers still need to handle cancellation, exceptions, shared state, and resource cleanup carefully.