title: Concurrent Haskell exceptions
body: <p>How are exceptions delivered in a concurrent Haskell program? </p>
  
  <p>Let's say we have a process, with multiple threads and one of them is interacting with something over a TCP connection and we get a signal (say on a *nix system). </p>
  
  <p>Which (green)thread will this signal be delivered to? </p>
  
  <p>Will it be delivered to the one which is "using" the socket or a "main" designated thread will receive and it has to explicitly do a <code>throwTo</code> to send the exception to that (green)thread?</p>