anchor.diff:  = promesa - promise library for clojure and clojurescript
   Andrey Antukh, <niwi@niwi.nz>
  -0.7.0
  +0.8.0
   :toc: left
   :!numbered:
   :idseparator: -
  
positive.code: 
  [source,clojure]
  ----
  [funcool/promesa "0.7.0"]
  ----
  
  This package requires JDK8 if you are using it on the JVM platform and
  
negative.code: [source, clojure]
  ----
  (def pr (-> (p/promise 1)
              (p/chain inc inc inc))
  (p/then pr (fn [v]
               (println v)))
  
  ;; => Stdout: 4
  ----
  
  
  === Advanced chaining
  
  Until now, we have seen a very simple promise compositions that does not depends
  on previous results. The `alet` macro allows us build more complex and more
  powerfull promise compositions using ES7 async/await like syntax.
  
  For demostration purposes, imagine that you have this function that emulates async
  operation and return a promise:
  
  [source, clojure]
  ----
  (require '[promesa.core :as p])
  
  (defn sleep-promise
  