execClient returns IO (), so it always returns unit, preventing me from turning a Client a into an IO a. I'd like to be able to call an rpc method and then process the result further after tearing down the TCP connection without staying inside the Client monad.