Asynchronous Exceptions in Practice January 24, 2017Asynchronous exceptions are a controversial feature of Haskell. You can throw an exception to another thread, at any time; all you need is its ThreadId: throwTo :: Exception e => ThreadId -> e -> IO () The other thread will receive the exception immediately, whatever it is doing. So you have to be ready for an asynchronous exception to fire at any point in your code. Isn’t that a scary thought? It’s an old idea - in fact, when we origina...