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>;