|  | 
template<class O> concept operation_state = destructible<O> && is_object_v<O> && requires (O& o) { { execution::start(o) } noexcept; };
        An object whose type satisfies operation_state
        represents the state of an asynchronous operation. It is the result of calling
        execution::connect with a sender
        and a receiver.
      
        execution::start may be called on an operation_state object at most once. Once
        execution::start has been invoked, the caller shall
        ensure that the start of a non-exceptional invocation of one of the receiver's
        completion-signalling operations strongly happens before [intro.multithread]
        the call to the operation_state
        destructor.
      
        The start of the invocation of execution::start
        shall strongly happen before [intro.multithread] the invocation of one of
        the three receiver operations.
      
        execution::start may or may not block pending the
        successful transfer of execution to one of the three receiver operations.