Como limitar o uso de memória de threads Haskell

Em um programa Haskell compilado com o GHC, é possível proteger programaticamente contra o uso excessivo de memória? Ou seja, notifique o programa quando o uso da memória atingir um limite especificado, indicando de preferência o encadeamento incorret

Por exemplo, suponha que eu queira escrever um servidor, hospedando um intérprete de linguagem de script, ao qual os usuários possam se conectar. É Turing-completo, para que os programas possam teoricamente usar memória ou tempo ilimitados. Suponha que cada cliente seja tratado com um thread separado. Se um cliente gravar um loop infinito que consome memória muito rapidamente, quero garantir que o encadeamento consuma não mais do que, digamos, 1 MB de memória, antes de ser alertado com uma exceção. Não quero que outros usuários sejam afetados quando isso acontece

Provavelmente é possível usando processos separados eulimit, mas

Prefiro mantê-lo em um programa, para evitar a complexidade da comunicação entre processo

Eu preciso dar suporte ao Linux e ao Windows, então prefiro mantê-lo independente da plataforma, se possíve

questionAnswers(3)

yourAnswerToTheQuestion