It would be interesting to see what it takes to get this functionality (at least locally) into Haskell given that there <i>are</i> asynchronous exceptions... even ones with arguably greater safety than their Erlang compatriots.<p>A similar effort is happening with the Cloud Haskell program, but my understanding is that they're pouring a lot of effort into transmitting arbitrary Haskell functions over the wire between computers. This is pretty unnecessary for supervision and "Let it Crash"-style error handling alone.
This was interesting simply for the explanation of Erlang systems, but as for the project itself I currently use Supervisor (<a href="http://supervisord.org" rel="nofollow">http://supervisord.org</a>) for this purpose, and I've been pretty happy with it.<p>Any reasons to make the switch?
I did something similar in Python, using Redis for the "operating system" and Linux processes. The system managed wide sets of parallel I/O operations with second-level latency. Worked great, albeit orders of magnitude slower than something like this. If you keep the supervisor on the same machine, you can do async exceptions via kill.