| template <class F>
 concept bool IndirectInvocable() {}return ranges::Invocable<F>();
 
 | (1) | (ranges TS) | 
| template <class F, class I>
 concept bool IndirectInvocable() {}return ranges::Readable<I>()
 && ranges::Invocable<F, ranges::value_type_t<I>>()
 && ranges::Invocable<F, ranges::reference_t<I>>()
 && ranges::Invocable<F, ranges::iter_common_reference_t<I>>();
 
 | (2) | (ranges TS) | 
| template <class F, class I1, class I2>
 concept bool IndirectInvocable() {}return ranges::Readable<I1>() && ranges::Readable<I2>()
 && ranges::Invocable<F, ranges::value_type_t<I1>, ranges::value_type_t<I2>>()
 && ranges::Invocable<F, ranges::value_type_t<I1>, ranges::reference_t<I2>>()
 && ranges::Invocable<F, ranges::reference_t<I1>, ranges::value_type_t<I2>>()
 && ranges::Invocable<F, ranges::reference_t<I1>, ranges::reference_t<I2>>()
 && ranges::Invocable<F, ranges::iter_common_reference_t<I1>,
 ranges::iter_common_reference_t<I2>>();
 
 | (3) | (ranges TS) | 
| template <class F>
 concept bool IndirectRegularInvocable() {}return ranges::RegularInvocable<F>();
 
 | (4) | (ranges TS) | 
| template <class F, class I>
 concept bool IndirectRegularInvocable() {}return ranges::Readable<I>()
 && ranges::RegularInvocable<F, ranges::value_type_t<I>>()
 && ranges::RegularInvocable<F, ranges::reference_t<I>>()
 && ranges::RegularInvocable<F, ranges::iter_common_reference_t<I>>();
 
 | (5) | (ranges TS) | 
| template <class F, class I1, class I2>
 concept bool IndirectRegularInvocable() {}return ranges::Readable<I1>() && ranges::Readable<I2>()
 && ranges::RegularInvocable<F, ranges::value_type_t<I1>, ranges::value_type_t<I2>>()
 && ranges::RegularInvocable<F, ranges::value_type_t<I1>, ranges::reference_t<I2>>()
 && ranges::RegularInvocable<F, ranges::reference_t<I1>, ranges::value_type_t<I2>>()
 && ranges::RegularInvocable<F, ranges::reference_t<I1>, ranges::reference_t<I2>>()
 && ranges::RegularInvocable<F, ranges::iter_common_reference_t<I1>,
 ranges::iter_common_reference_t<I2>>();
 
 | (6) | (ranges TS) | 
|  |  |  |