template<class F, class... Args>
  concept regular_invocable = invocable<F, Args...>;
template<class F, class... Args>
  concept predicate =
    regular_invocable<F, Args...> && boolean-testable<invoke_result_t<F, Args...>>;
template<class R, class T, class U>
  concept equivalence_relation = relation<R, T, U>;
template<class R, class T, class U>
  concept strict_weak_order = relation<R, T, U>;