> A simpler solution might be to keep things as they are, but have the > non-idempotent constructs be generators of Awaitable instead of > non-idempotent Awaitables So it’s the same as in C#?
The problem with this situation is that so far I haven’t been able to find any cases proving that a non-Future object could cause serious failures in the code. At the same time, if a select case expression is introduced in the future, it would make more sense for select to work with an awaitable object rather than a Future. That’s why I’m not yet sure it’s worth abandoning the general behavior unless a convincing argument is found showing that it leads to real problems. -- Ed
