Could we do something like: ```rust offer!(in chan { End => break chan.close(), Push => { // push a value } })?; ``` `End` and `Push` would reduce to enums: ```rust enum Choice { End, Push } offer!(in chan { Choice::End => ..., Choice::Push => ..., })?; ```