diff --git a/execution.bs b/execution.bs index b3513ae..3515da1 100644 --- a/execution.bs +++ b/execution.bs @@ -7842,7 +7842,7 @@ namespace std::execution { } - 2. impls-for<tag_t<let-cpo>>::get-state is + 2. impls-for<decayed-typeof<let-cpo>>::get-state is is initialized with a callable object equivalent to the following:
@@ -7867,7 +7867,7 @@ namespace std::execution {
                 specialization named by
                 completion_signatures_of_t<child-type<Sndr>,
                 env_of_t<Rcvr>>. Let `LetSigs` be a pack of those types in `Sigs`
-                with a return type of tag_t<set-cpo>. Let
+                with a return type of decayed-typeof<set-cpo>. Let
                 `as-tuple` be an alias template such that
                 as-tuple<Tag(Args...)> denotes the type
                 decayed-tuple<Args...>. Then
@@ -7897,13 +7897,13 @@ namespace std::execution {
             start(op2);
             
- 4. impls-for<tag_t<let-cpo>>::complete is + 4. impls-for<decayed-typeof<let-cpo>>::complete is is initialized with a callable object equivalent to the following:
             []<class Tag, class... Args>
               (auto, auto& state, auto& rcvr, Tag, Args&&... args) noexcept -> void {
-                if constexpr (same_as<Tag, tag_t<set-cpo>>) {
+                if constexpr (same_as<Tag, decayed-typeof<set-cpo>>) {
                   TRY-EVAL(std::move(rcvr), let-bind(state, rcvr, std::forward<Args>(args)...));
                 } else {
                   Tag()(std::move(rcvr), std::forward<Args>(args)...);
@@ -7912,7 +7912,7 @@ namespace std::execution {
             
6. Let `sndr` and `env` be subexpressions, and let `Sndr` be `decltype((sndr))`. - If sender-for<Sndr, tag_t<let-cpo>> is + If sender-for<Sndr, decayed-typeof<let-cpo>> is `false`, then the expression let-cpo.transform_env(sndr, env) is ill-formed. Otherwise, it is equal to JOIN-ENV(let-env(sndr), FWD-ENV(env)).