[Rejected] SE-0533: Generating synchronous overloads of `async` functions with a macro

The review of SE-0533, Generating synchronous overloads of async functions with a macro ran from June 1 to June 15, 2026. The Language Steering Group has decided to reject this proposal. Although the Steering Group believes that deriving a synchronous variant of a function from an async definition is useful, and we still believe that on balance a macro is the best way to realize it, the feedback we received during review made it clear that there is still a lot of design space for the community to explore here. Many reviewers noted that, although they would have use for a feature in this space, they would not be able to adopt it in the form proposed. The Steering Group is willing to consider future proposals in this space when clearer best practices emerge, but for the time being, we believe that it is premature to accept this particular implementation into the standard library. We concur with the sentiment of reviewers that a package would be an appropriate medium for distributing this implementation. A package being free of the API stability and evolution strictures of the standard library will give the implementation an opportunity to adapt and experiment. It would also leave space for other implementations in other packages to experiment as well.

Thank you to everyone who participated in the review!

21 Likes