sendWithReplyAndBlock :: Connection -> Message
                      -> Int -- ^Timeout in milliseconds.
                      -> IO Message
sendWithReplyAndBlock conn msg timeout =
  withForeignPtr conn $ \conn -> do
    withForeignPtr msg $ \msg -> do
      ret <- withErrorP $ connection_send_with_reply_and_block conn msg timeout
      messagePToMessage ret False
sendWithReplyAndBlock :: Connection -> Message
                      -> Int -- ^Timeout in milliseconds.
                      -> IO Message
sendWithReplyAndBlock conn msg timeout =
  withForeignPtr conn $ \conn -> do
    withForeignPtr msg $ \msg -> do
      ret <- withErrorP $ connection_send_with_reply_and_block conn msg timeout
      messagePToMessage ret False
sendWithReplyAndBlock conn msg timeout =
  withForeignPtr conn $ \conn -> do
    withForeignPtr msg $ \msg -> do
      ret <- withErrorP $ connection_send_with_reply_and_block conn msg timeout
      messagePToMessage ret False