O que acontece com os threads filhos quando seus pais morrem no GHC Haskell?

A documentação paraforkIO diz

GHC note: the new thread inherits the masked state of the parent (see mask).

The newly created thread has an exception handler that discards the exceptions
BlockedIndefinitelyOnMVar, BlockedIndefinitelyOnSTM, and ThreadKilled, and passes
all other exceptions to the uncaught exception handler.

Por que o manipulador de exceção filho descartaThreadKilled? Existe alguma conexão entre os dois threads depois que eles são criados?

O que exatamente acontece quando o encadeamento pai morre? A criança recebe alguma exceção? Ou existe alguma maneira de ver da perspectiva da criança que o pai morreu? Existe algo mais que acontece, exceto que o encadeamento pai apenas para de executar?

A razão pela qual estou perguntando isso é que, em muitos casos, sou forçado a criar um encadeamento em um contexto em que não consigo acessar o escopo do pai. Imagine que você está em algum lugar no fundo de uma biblioteca e precisa ligar paraforkIOe que esse segmento morra quando o pai morre. É necessário reestruturar o programa e propagar a criançaThreadId até o pai e matá-lo explicitamente? Ou existe alguma outra solução alternativa para isso?

questionAnswers(3)

yourAnswerToTheQuestion