template<class From, class To>
  concept convertible_to =
    is_convertible_v<From, To> &&
    requires(add_rvalue_reference_t<From> (&f)()) {
      static_cast<To>(f());
    };
To test(FromR (&f)()) { return f(); }and let f be a function with no arguments and return type FromR such that f() is equality-preserving.