By creating one or more awaiters and awaitables, is it possible to build coroutines in C#?
Ideally I would like to be able to write something like:
void async Click() {
var mouse_position = await left_mouse_click();
await shoot_projectile();
}
and then obtaining from the Click method something that I can either await inside another async method or that I can explicitly iterate with some MoveNext/GetResult method.
The end goal is that I need to integrate C# async/await with F# monadic coroutines for a game development framework (http://casanova.codeplex.com).