template<class R>
state(coroutine_handle<promise_type> h, R&& rr);
~state();
void start() & noexcept;
template<class... Args>
promise_type(const Args&... args);
task get_return_object() noexcept;
auto initial_suspend() noexcept;
auto final_suspend() noexcept;
template<class Err>
auto yield_value(with_error<Err> err);
template<class Sch>
auto await_transform(change_coroutine_scheduler<Sch> sch) noexcept;
void uncaught_exception();
coroutine_handle<> unhandled_stopped();
unspecified get_env() const noexcept;
template<class... Args>
void* operator new(size_t size, const Args&... args);
void operator delete(void* pointer, size_t size) noexcept;