Haskell supports many forms of concurrency and the most obvious being forking a thread using forkIO.
The function forkIO :: IO () -> IO ThreadId takes an IO action and returns its ThreadId, meanwhile the action will be run in the background.
We can demonstrate this quite succinctly using ghci:
...