Async.core-compatible monad-ish lightweight promises for ClojureScript, not for JavaScript.