A monad for efficient concurrent IO over a thread pool