Pipes are troublesome beasts because there are a few different, incompatible
ways to create them. Not all platforms support all ways, and some platforms
may have hidden difficulties like incomplete or buggy support.

IO::Pipely provides a couple functions to portably create one- and two-way
pipes and pipe-like socket pairs. It acknowledges and works around known
platform issues so you don't have to.