Hello.

It seems to me that the following solution balances the different
viewpoints better:

1. Keep the base `Awaitable` interface, which defines an object that
can be awaited.
2. Introduce a `FutureLike` interface that extends `Awaitable`.
3. Modify the `await()` function so that it only accepts `FutureLike` objects.
4. Functions such as `awaitAll` or `awaitAny` may need to be renamed,
but that’s outside the scope of this RFC.
5. There will be no need to create a `Future` for functions designed
to work with an `Awaitable` object — this keeps the `select case`
syntax clean.

**Naming issue**

I see a certain inconsistency between `await` and `Awaitable`.
It might be worth coming up with a better name for `Awaitable`.
I remember that “Observable” was once suggested.

Reply via email to