The select package

While tinkering on a project, I frequently found myself
having to make FFI calls to select(2). This package is an attempt
reduce the boilerplate I needed to do that. While at it, I took the
opportunity to have what select returns put in a TMVar.

The package has three parts:

System.Posix.IO.Select

just wraps select.

Control.Concurrent.STM.TMVarIO

and Control.Concurrent.MVarIO put the
return value of IO actions into a TMVar or an MVar, respectively.

System.Posix.IO.Select.STM

and System.Posix.IO.Select.MVar do the above for
select.

NOTE: I feel I'm occupying prime namespace realestate with a package name
like select. I'll happily let myself be chased away if anybody else wants
to use this package name. Let me know.

CAVEAT: I'm not an experienced Haskeller, and this is my first foray into
FFI in general.