template<class T>
  concept boolean-testable-impl = convertible_to<T, bool>;  // exposition only
template<class T>
  concept boolean-testable =                // exposition only
    boolean-testable-impl<T> && requires(T&& t) {
      { !std::forward<T>(t) } -> boolean-testable-impl;
    };