I’ve been using it for about a year and found it replaced several common patterns, so I decided to publish it and write up the reasoning and trade-offs.
Interested to hear how others approach this problem, or if there are edge cases where this breaks down.