The Readable concept is satisfied by types that are readable by applying operator* including pointers, smart pointers, and iterators.
template <class In> concept bool Readable = requires { typename value_type_t<In>; typename reference_t<In>; typename rvalue_reference_t<In>; } && CommonReference<reference_t<In>&&, value_type_t<In>&> && CommonReference<reference_t<In>&&, rvalue_reference_t<In>&&> && CommonReference<rvalue_reference_t<In>&&, const value_type_t<In>&>;