[exec.let] para 13 reads:
- Let
sndr and env be subexpressions, and let Sndr be decltype((sndr)). 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)).
the sender passed to let-env here should be the child of sndr.
Proposed resolution
Change [exec.let] para 13 as follows:
13. Let sndr and env be subexpressions, and let Sndr be decltype((sndr)). 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)).
+
+ auto& [_, _, child] = sndr;
+ return JOIN-ENV(let-env(child), FWD-ENV(env));