sendMsg' :: (Sender a) => IOLoop a -> [B.ByteString] -> IO (CancelAction, Bool)
sendMsg' p msg = do
  ctrl <- newIORef True
  ok   <- sendMsgWithCtrl' p (readIORef ctrl) msg
  return (writeIORef ctrl False, ok)
sendMsg' :: (Sender a) => IOLoop a -> [B.ByteString] -> IO (CancelAction, Bool)
sendMsg' p msg = do
  ctrl <- newIORef True
  ok   <- sendMsgWithCtrl' p (readIORef ctrl) msg
  return (writeIORef ctrl False, ok)
sendMsg' p msg = do
  ctrl <- newIORef True
  ok   <- sendMsgWithCtrl' p (readIORef ctrl) msg
  return (writeIORef ctrl False, ok)