inline behavior operator,(const match_expr<Lhs...>& lhs, const timeout_definition<F>& rhs) { return match_expr_convert(lhs, rhs); }
continue_helper then(const match_expr<Cs...>& arg, const Ts&... args) { check_consistency(); self->become_waiting_for(match_expr_convert(arg, args...), m_mid); return {m_mid}; }
void await(const match_expr<Cs...>& arg, const Ts&... args) { check_consistency(); self->dequeue_response(match_expr_convert(arg, args...), m_mid); }
inline void become(match_expr<Cases...> arg0, Args&&... args) { become(discard_behavior, match_expr_convert(std::move(arg0), std::forward<Args>(args)...)); }