Make generators and promises synchronous
Don't contaminate the caller with asynchronism.
Avoid verbose promise syntax using generators.
let aExists bExists =
Uses the excellent library co, and deasync
Also works for promises
let helloWorld = dasyncPromise(() => Promise.resolve('hello world'))