// PR c++/68683
// { dg-do compile { target c++20 } }
template <typename, typename>
struct is_same {
  static constexpr bool value = true;
};
template <typename T, typename U>
concept Same = is_same<T, U>::value;
template <typename T>
concept Integral = requires {
  { T () } -> Same<typename T::value_type>;
};
struct A {
  using value_type = bool;
};
int main () {
  Integral<A>;
  Integral<A>;
  return 0;
}