Cómo matar un hilo en Haskell

Utilizando Control.Concurrent y forkIO hay algunos casos que dejarán el subproceso en un estado bloqueado (esto es especialmente frecuente en Windows con redes), por lo que incluso si uno intenta usar killThread, la excepción nunca se genera en el subproceso. ¿Hay alguna otra forma de forzar la muerte de un hilo?

Mi intento de terminar la aplicación completa con exitFailure desde un subproceso auxiliar no tiene ningún efecto en estas condiciones.

El glorioso Glasgow Haskell Compilation System, versión 6.12.1 HP 2010.1.0.0

EDIT: para aclarar las cosas, no quiero terminar la aplicación, preferiría simplemente matar el hilo que ha estado bloqueado durante mucho tiempo. Sin embargo, hay numerosos ejemplos incluso aquí en SO con código completo usando exitWith en un subproceso auxiliar y ese tipo de esquema no funciona en las condiciones que tengo.

Respuestas a la pregunta(4)

Su respuesta a la pregunta