template<class R, class T, class U>
concept Relation =
Predicate<R, T, T> && Predicate<R, U, U> &&
CommonReference<const remove_reference_t<T>&, const remove_reference_t<U>&> &&
Predicate<R,
common_reference_t<const remove_reference_t<T>&, const remove_reference_t<U>&>,
common_reference_t<const remove_reference_t<T>&, const remove_reference_t<U>&>> &&
Predicate<R, T, U> && Predicate<R, U, T>;
common_reference_t<const remove_reference_t<T>&, const remove_reference_t<U>&>