Cómo limitar el uso de memoria de los hilos Haskell

En un programa Haskell compilado con GHC, ¿es posible protegerse programáticamente contra el uso excesivo de memoria? Es decir, haga que notifique al programa cuando el uso de la memoria alcance un límite específico, indicando preferiblemente el hilo ofensor.

Por ejemplo, suponga que quiero escribir un servidor, que aloje un intérprete de lenguaje de script, al que los usuarios puedan conectarse. Es Turing completo, por lo que los programas teóricamente podrían usar memoria o tiempo ilimitados. Supongamos que cada cliente se maneja con un hilo separado. Si un cliente escribe un bucle infinito que consume memoria muy rápidamente, quiero asegurarme de que el hilo no consuma más de, digamos, 1 MB de memoria, antes de recibir una alerta con una excepción. No quiero que otros usuarios se vean afectados cuando eso suceda.

Esto probablemente sea posible utilizando procesos separados yulimit, pero

refiero mantenerlo en un solo programa, para evitar la complejidad de la comunicación entre proceso

Necesito soportar Linux y Windows, por lo que preferiría mantenerlo independiente de la plataforma si es posible.

Respuestas a la pregunta(3)

Su respuesta a la pregunta