newIOLoop_ :: String -> Socket a -> Int -> IO (IOLoop a)
newIOLoop_ name fh limit = do
  qsrc <- newMVar []
  qdst <- newBoundedChan limit
  newIOLoop name qsrc qdst fh
newIOLoop_ :: String -> Socket a -> Int -> IO (IOLoop a)
newIOLoop_ name fh limit = do
  qsrc <- newMVar []
  qdst <- newBoundedChan limit
  newIOLoop name qsrc qdst fh
newIOLoop_ name fh limit = do
  qsrc <- newMVar []
  qdst <- newBoundedChan limit
  newIOLoop name qsrc qdst fh