Como chamamos uma função normal em que uma corotina é esperada?

Considere uma corotina que chama para outra corotina:

async def foo(bar):
     result = await bar()
     return result

Isso funciona bem sebar é uma corotina. O que preciso fazer (ou seja, com o que preciso encerrar a chamada parabar) para que este código faça a coisa certa sebar é uma função normal?

É perfeitamente possível definir uma corotina comasync def mesmo que nunca faça nada assíncrono (ou seja, nunca useawait) No entanto, a pergunta pergunta como quebrar / modificar / chamar uma função regularbar dentro do código parafoo de tal modo quebar pode ser aguardado.