Let transformed-sndr(dom, tag, s) be the expression
dom.transform_sender(tag, s, env)
if that expression is well-formed; otherwise,
default_domain().transform_sender(tag, s, env)
Let
transform-recurse(dom, tag, s) be
the expression
transformed-sndr(dom, tag, s)
if
transformed-sndr(dom, tag, s) and
s
have the same type ignoring cv-qualifiers;
otherwise, it is
the expression
transform-recurse(dom2, tag2, s2), where
s2 is
transformed-sender(dom, tag, s) and
dom2 is
start-domain if
tag is
start, and
completion-domain(s2) otherwise
.Let tmp-sndr be the expression
transform-recurse(completion-domain(sndr), set_value, sndr)
and let final-sndr be the expression
transform-recurse(start-domain, start, tmp-sndr)