Because the coroutine state machine must have a single entry and exit point (the lambda parameter block marked with the
coroutine
keyword), and calls to
suspend
functions can only happen as direct children of that block, any attempt to use a suspend function from within a provided callback will be flagged by the compiler as illegal