#pragma once namespace saw { template class remote { static_assert(always_false, "Type of remote not supported"); template rpc_client connect(); }; template class rpc_client { template struct request { private: std::tuple...> ids_; public: error_or...>> wait(); }; template request request_data(id... data); }; template class rpc_server { }; }