https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68434
--- Comment #5 from ryan.burn at gmail dot com ---
reduction for the other test case:
template <typename, typename>
struct is_same {
static constexpr bool value = true;
};
template <typename T, typename U>
concept bool Same = is_same<T, U>::value;
template <typename T>
concept bool Integral = requires{
{ T() } -> Same<typename T::value_type>;
};
struct A {
using value_type = bool;
};
template <Integral B>
using not_ = A;
int main() {
Integral<not_<A>>;
return 0;
}