anchor.diff:  
   [source,clojure]
   ----
  -[funcool/promesa "0.7.0"]
  +[funcool/promesa "0.8.0"]
   ----
   
   This package requires JDK8 if you are using it on the JVM platform and
  
positive.code: = promesa - promise library for clojure and clojurescript
  Andrey Antukh, <niwi@niwi.nz>
  0.7.0
  :toc: left
  :!numbered:
  :idseparator: -
  
negative.code:                (p/schedule wait #(resolve wait)))))
  ----
  
  Let's see an example using `alet` (async let) macro:
  
  [source, clojure]
  ----
  (def pr
    (p/alet [x (p/await (sleep-promise 42))
             y (p/await (sleep-promise 41))
             z 2]
      (+ x y z)))
  
  (p/then pr (fn [v]
               (println v)))
  
  ;; => Stdout: 85
  ----
  
  The `alet` macro behaves identical to the `let` with the exception that it
  always return a promise and allows mark async operations with `await` placeholder
  making it looks like synchronous opetation.
  
  If an error occurs at any step the entire composition will be short-circuited,
  returning exceptionally resolved promise.
  
  If you are not familiar with `async`/`await` syntax, you can read more
  about it link:http://jakearchibald.com/2014/es7-async-functions/[here].
  
  
  === Error handling
  