Since it's related, here's the `removeEventListener` API I wish we had:
```javascript
const removeListener = window.addEventListener('something', () => { /* ... */ });
await someTime();
removeListener();
```
Benefits:
1. You only provide the handler once, so it works great with lambdas. You don't need to keep a reference to the handler just to remove it later.
2. You don't need to provide the event twice. It's additional information to hard-code and/or dynamically track.
3. You can't accidentally `removeEventListener` on a function which was not bound in the first place (which is a no-op that often indicates a bug such as `removeEventListener('something', foo.bind(this)`).
This design is basically a copy of the way #RxJS handles subscriptions, but I find this much more ergonomic and intuitive.