#### Automatic deduction of initiating function return type

The return type of an initiating function is `typename async_result<decay_t<CompletionToken>, Signature>::return_type`.

For the sake of exposition, this library sometimes annotates functions with a return type `DEDUCED`. For every function declaration that returns `DEDUCED`, the meaning is equivalent to specifying the return type as `typename async_result<decay_t<CompletionToken>, Signature>::return_type`.