I see there's wrapper libraries for select(2) and poll(2), but they don't seem much used.
The epoll-based System.Event used here has since been merged in as GHC.Event (though the loop function got put in to the private module GHC.Event.Manager and isn't exported, so apparently only getSystemEventManager is usable). GHC.Event says "This module should be considered GHC internal.", which has me wondering - is there some library that wraps that that I should be using, instead?
Some background on my use-case: I wanted to perform an action on a udev event (update a display when e.g. brightness changes). The example here is using the select(2) wrapper: https://github.com/pxqr/udev/blob/master/examples/monitor.hs#L36 I was hoping to use something more modern / better maintained and/or less dependencies.