https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95540
--- Comment #1 from Michael Bruck <bruck.michael at gmail dot com> --- "impossible" is too strong here, you can add another overload: template <typename T> struct std::coroutine_traits<pt::handle_t, T> { using promise_type = pt; };