Modules

Trampolining functions with async/await syntax
decide which thunk should be evaluated next