for now, it catches the following incorrect function:
async def show_foo() -> Awaitable[None]:
return show_something_else("foo")
because to correctly show the result, the caller would have to "await (await show_foo())"
(this should either be "async def show_foo() -> None", or "def show_foo() -> Awaitable[None]")