¿Cómo puedo sondear archivos, sockets o identificadores para que se puedan leer / escribir en Haskell?

¿Cómo podría ver varios archivos / sockets de Haskell y esperar a que estos se vuelvan legibles / grabables?

¿Hay algo como el select / epoll / ... en Haskell? ¿O me veo forzado a generar un hilo por archivo / socket y siempre uso el recurso de bloqueo dentro de ese hilo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta